Mysql_num_rows在第二个查询中返回0


mysql_num_rows return 0 in the second query

我有这样的代码:

$sql    = "SELECT 
               t.id AS txn_id, 
               g.id AS guest_id, 
               a.id AS booking_id 
           FROM 
               bookings a
           LEFT JOIN transactions t ON a.txn_id=t.id
           LEFT JOIN guests g ON g.txn_id=t.id
           WHERE 
               t.code='o2-i1321209942'
           LIMIT 1";
$query  = mysql_query($sql);
$exist  = mysql_num_rows($query);
if(!$exist) {
     echo 'NOT EXISSSTTTT!!!!!!!!!!!!!!!!';
} else {
     echo 'EXISSSTTTT!!!!!!!!!!!!!!!!';
}

注意:数据库中存在数据

当我点击提交从一个表单,它将显示"NOT EXISSSTTTT!!!!!!!!!!!!!!!!",然后当我刷新页面或按Ctrl+F5它将显示"EXISSSTTTT!!!!!!!!!!!!!!!!",当我再次刷新它将显示"NOT EXISSSTTTT!!!!!!!!!!!!!!!!"。

作用如下:

Submit: Not Exists

刷新:存在

第二次刷新:Not Exists

第三次刷新:Exists

有什么建议为什么它工作奇怪吗?

谢谢。

如果查询返回0行或查询失败(mysql_num_rows在错误情况下返回FALSE),则代码输出"not exist"。所以我猜你有一个连接相关的问题(或者你可能动态构造查询,而不是转义一些数据)。您可以通过输出错误信息来跟踪它:

$query  = mysql_query($sql) or die(mysql_error()) ;
$exist  = mysql_num_rows($query);