gpt4 book ai didi

php - PDOStatement::fetch() 和重复的字段名称

转载 作者:可可西里 更新时间:2023-11-01 00:45:09 24 4
gpt4 key购买 nike

我正在使用 MySQL 和 PHP 5.3.8 开发 Web 应用程序。我们有一种机制可以将简化的查询指令转换为完整的查询字符串,包括连接。

由于我不知道将连接哪些(规范化)表以及它们的字段称为什么,因此可能存在重复的字段名称。执行 PDOStatement::fetch(PDO::FETCH_ASSOC) 时,我得到一个关联的字段名称数组:

$test = $this->DBConnection->prepare("SELECT `events`.`Title`, `persons`.`Title` FROM `events` JOIN `persons` ON `events`.`HostID` = `persons`.`ID`;");
$test->execute();
$test->fetch();

但是我没有办法区分重复的字段名,比如“title”。更糟糕的是,重复项会相互覆盖:

array('Title' => 'Frodo Baggins');

在过去糟糕的日子里,我在每个字段上运行 mysql_fetch_field() 以获取每个字段的表。请告诉我有比为字段添加前缀更好的方法 (SELECT events.Title AS eventsTitle;)。

非常感谢您的帮助!

最佳答案

在查询中给他们别名,这样他们就不会重复:

SELECT events.Title AS eTitle, persons.Title AS pTitle FROM ...

那么该行将是:

array('eTitle' => 'Hobbit Meeting', 'pTitle' => 'Frodo Baggins');

另一种方法是将结果作为索引数组而不是关联数组获取:

$test->fetch(PDO::FETCH_NUM);

然后你会得到:

array('Hobbit Meeting', 'Frodo Baggins');

您可以通过 $row[0]$row[1] 访问它们。

关于php - PDOStatement::fetch() 和重复的字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21071353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com