我正在编写一个软件,用于根据原始用户定义的SQL查询执行生成pdf报告。 pdf包含一个包含SQL结果行的行的简单表。我想添加一个表头,其中包含检索的列名以及SQL结果。 SQL中的列标题可能有各种结构,例如:
a) select * from users;
b) select name, surname, email from users;
c) select name as UserName, surname as UserSurname, email as UserEmail from users;
到目前为止,我将SQL结果作为关联数组获取,获取第一行的键并将它们视为列名。 它仅在结果集中至少有1个结果时起作用,因此这种方法存在严重缺陷。
describe table x
,但这很荒谬。有没有人有任何想法解决这个问题? 我在MySQL上使用Doctrine,但是简单的PDO方法和Doctrine方法一样好。
修改
发布此问题后,我想到了我可以从我的SQL查询中生成一个视图,然后运行SHOW COLUMNS FROM randomViewName;
并立即删除视图。
它很hacky,需要一些数据库安全工作(我可以处理),但它是一个有效的候选人。
您怎么看?
答案 0 :(得分:0)
这可能不是完美的解决方案,但我同意问题中提到的方法。
我创建了一个MySQL view。这允许我有一个可查询的db对象,并且具有我想要的精确列名。
describe nameOfViewYouJustCreated;
完全符合我的需要。 视图随后被删除。