mysql_num_rows在第二个查询中返回0

时间:2011-11-13 19:15:33

标签: php mysql

我有这段代码:

$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 EXISSSTTT !!!!!!!!!!!!!!!!”然后当我刷新页面或按Ctrl + F5时,它将显示“EXISSSTTTT !!!!!!!!!!!!!!!!”当我再次刷新它会显示“NOT EXISSSTTT !!!!!!!!!!!!!!!!”试。

它的行为如下:

提交:不存在

刷新:存在

第二次刷新:不存在

第三次刷新:存在

任何建议为什么它工作奇怪?任何答案都将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:1)

如果查询返回0行或查询失败,则代码输出“不存在”(如果出现错误,mysql_num_rows将返回FALSE)。所以我猜你有一个连接相关的问题(或者你可能动态构造查询而不是逃避一些数据)。您可以通过输出错误信息来追踪它:

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

$exist  = mysql_num_rows($query);