SQL查询返回行通过phpMyAdmin,但不是在网站上


SQL query returns row via phpMyAdmin but not on web site

我遇到了一个奇怪的问题,当我在我的网站上运行它时,我的查询不返回任何东西,但是当我在phpMyAdmin中运行它时,它返回1行。

$query = $this->db->query("SELECT post_date, post_id, ref_user_id FROM forum_posts WHERE post_id = (SELECT MAX(post_id) FROM forum_posts WHERE ref_post_id = $row->ref_post_id AND NOT deleted = 1 LIMIT 1) LIMIT 1");
echo $this->db->last_query().'<br>';
echo $query->num_rows();

num_rows()给出0。我复制了last_query()给我的代码行,并将其粘贴到phpMyAdmin中,它返回1行。

知道为什么我不工作在我的网站吗?

谢谢!

您需要转义查询中的字符串以引用PHP变量:

$query = $this->db->query("SELECT post_date, post_id, ref_user_id FROM forum_posts 
         WHERE post_id = (SELECT MAX(post_id) 
                         FROM forum_posts WHERE ref_post_id = " . $row->ref_post_id . " AND NOT deleted = 1 LIMIT 1) LIMIT 1");