1

我正在使用以下 SQL 查询从表帖子用户评论中提取内容

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

1 回答 1

2

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

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

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

于 2013-04-13T21:13:53.057 回答