【发布时间】:2013-05-01 20:52:57
【问题描述】:
我的数据库中有多个列名相似的表。
假设表 1、表 2、表 3 有一个名为:“名称”的列。这些不是索引列。它们包含不同且独立的数据。
如果我运行查询连接这 3 个表并 fetchAll() 结果,结果数组中将只有一个“名称”条目,因为 fetchAll() 会覆盖具有相同名称的列。
常规的 MySQL 库可以让您访问这样的结果:
mysql_result($result,0,'TABLE1.name');
如何让 PDO 在列名之前附加表名,例如:TABLE1.name、TABLE2.name 等。
我想避免在我的 SQL 查询中使用别名,因为我有大量的表。我在网上找到的唯一答案使用别名。有没有我们可以提供给 PDO 的参数来做我正在寻找的东西?
【问题讨论】:
-
Afaik,您必须使用
PDO::FETCH_NUM并使用列号,或者FETCH_BOUND和->bindColumn(),再次使用基于数字的索引。 -
Wrikken:关于我如何做到这一点的更多细节?
-
它在 PHP 的文档中,尽管
var_dump()-ing->fetchAll(PDO::FETCH_NUM)的结果并检查它的输出可能会告诉你足够的使用它。 -
你也可以使用
PDO::FETCH_NAMED。