作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 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/
概述 CentOS Stream 成立于 2019 年,是“RHEL 下一步的滚动预览”。Red Hat 首席技术官 Chris Wright 和 CentOS 社区经理 Rich Bowen 各
我有一个使用 Mesosphere DC/OS 编排选项进行配置的 Azure 容器服务 (ACS) 集群。我可以在 Marathon UI 中创建一个应用程序。 但是,当我通过 Marathon U
我是一名优秀的程序员,十分优秀!