SQL 查询为 PHP 中的 ID 列返回不正确的值
Posted
技术标签:
【中文标题】SQL 查询为 PHP 中的 ID 列返回不正确的值【英文标题】:SQL query returns incorrect value for ID column in PHP 【发布时间】:2013-04-06 06:11:17 【问题描述】:我正在使用以下 SQL 查询从表 posts、users 和 cmets
中提取内容当我在数据库上运行查询时,它会正确返回结果中“ID”列的值 14。
但是使用 php 的 mysqli 它返回 1,有时返回 2。任何人都可以看到查询的任何问题吗?我已经盯着它看了好几个小时,我真的不想为了得到正确的 ID 值而单独查询。
SELECT * FROM posts
LEFT OUTER JOIN comments ON posts.ID = comments.comment_post_id AND comments.comment_approved = 1
LEFT OUTER JOIN users ON users.ID = posts.post_author WHERE posts.ID = '14' AND posts.post_type = 'post' AND posts.post_status = 'publish'
ORDER BY comments.comment_ID DESC
PHP 代码:
while ($thisResult = $result->fetch_array(MYSQLI_ASSOC))
echo $thisResult['ID']; // returns 1
echo $thisResult['post_title']; // returns the correct post title
【问题讨论】:
【参考方案1】:查询中的多个表具有ID
列。在select
中使用字段别名而不是*
。例如,
SELECT posts.id as post_id, ..... FROM posts ....
或者您可以使用$thisResult[0]
获取正确的id(假设id 是posts
表中的第一列)
【讨论】:
有时只见树木不见森林。查看数据库结果,用户表中有一个额外的 ID 列。 掌心 谢谢!以上是关于SQL 查询为 PHP 中的 ID 列返回不正确的值的主要内容,如果未能解决你的问题,请参考以下文章