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

时间:2013-04-13 21:11:49

标签: php mysql sql join mysqli

我使用以下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
 }

1 个答案:

答案 0 :(得分:2)

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

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

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