Php mysql\u num\u行在第二次查询中返回0

Php mysql\u num\u行在第二次查询中返回0,php,mysql,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 guest

我有以下代码:

$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!!!!!!!!!!!!!!!!';
}
注意:数据库中存在数据

当我从表单中单击提交时,它将显示“不存在stttt!!!!!!!!!!!!!!!!!!!!!!!”然后当我刷新页面或按Ctrl+F5时,它将显示“存在stttt!!!!!!!!!!!!!!!!!!!!!!!”当我再次刷新它时,它将再次显示“不存在stttt

它的行为就像:

提交:不存在

刷新:存在

第二次刷新:不存在

第三次刷新:存在

有没有什么建议,为什么它工作起来很奇怪?任何答复都将不胜感激

谢谢。

如果查询返回0行或查询失败(
mysql\u num\u rows
在出现错误时返回
FALSE
),您的代码将输出“不存在”。所以我猜您有一个与连接相关的问题(或者您动态地构造查询,而不是转义某些数据)。您可以通过输出错误信息来跟踪它:

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

$exist  = mysql_num_rows($query);

您的mysql连接在哪里完成?提交表单时,您提交的任何信息是否包含在查询中?你能包括表单标记吗?今天是星期天早上,为什么这么大声?@tandu:是的,mysql连接完成了。这就是为什么它会为第一个mysql_num_rows查询返回1。@JaredFarrish,无论是否有表单中的数据。我已经试过输出错误,但是查询没有错误。问题是,当我刷新页面时,mysql_num_rows输出将交替更改。与第一次刷新一样,它将返回1,然后下一次刷新将显示0。可能是数据逃逸的问题。你能帮我怎么做吗?你能从表格中得到
t.code
的值吗?或者总是
“o2-i1321209942”
?在我看来真的很奇怪。您确定不更新数据库中影响代码中查询返回的记录数的任何内容吗?若您说它总是返回0,然后返回1行,并且并没有错误,那个么我的假设是某段代码更新了数据库。