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

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

中提取内容

当我在数据库上运行查询时,它会正确返回结果中“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
 }

【问题讨论】:

    标签: php mysql sql join mysqli


    【解决方案1】:

    查询中的多个表具有ID 列。在select 中使用字段别名而不是*。例如,

    SELECT posts.id as post_id, ..... FROM posts ....

    或者您可以使用$thisResult[0] 获取正确的id(假设id 是posts 表中的第一列)

    【讨论】:

    • 有时只见树木不见森林。查看数据库结果,用户表中有一个额外的 ID 列。 掌心 谢谢!
    猜你喜欢
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    相关资源
    最近更新 更多