SQL 查询为 PHP 中的 ID 列返回不正确的值

Posted

技术标签:

【中文标题】SQL 查询为 PHP 中的 ID 列返回不正确的值【英文标题】:SQL query returns incorrect value for ID column in PHP 【发布时间】:2013-04-06 06:11:17 【问题描述】:

我正在使用以下 SQL 查询从表 postsuserscmets

中提取内容

当我在数据库上运行查询时,它会正确返回结果中“ID”列的值 14。

但是使用 phpmysqli 它返回 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 列返回不正确的值的主要内容,如果未能解决你的问题,请参考以下文章

SQL 根据最大​​列获取行

H2 列名选择返回不正确的列名; “未找到列“OUT_ID”;SQL 语句:”

SQL 查询为其他列中的每个唯一条目返回最高和最低

sql的一般查询语句(增删改查中的查)

SQL 查询未返回正确的值

如何对数组php中的所有项目运行sql查询