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行,并且并没有错误,那个么我的假设是某段代码更新了数据库。