Mysql 奇怪的行为

Mysql 奇怪的行为,mysql,Mysql,我已经编程多年了,现在我面临着一个非常奇怪的问题 我有一个验证重复id和tid的查询 $query4=mysql_query("select id,tid from transactionlog where id='$result1[id]' and tid ='$result1[tid ]'") ; $num=mysql_num_rows($query4); if ($num == 0) { // case new . insert new raw here } 我使用的数据库

我已经编程多年了,现在我面临着一个非常奇怪的问题 我有一个验证重复id和tid的查询

$query4=mysql_query("select id,tid from transactionlog  where     id='$result1[id]' and tid ='$result1[tid ]'")  ;

$num=mysql_num_rows($query4);
if ($num == 0)
{
// case new . insert new raw here
}
我使用的数据库相当大,超过500Kraw,现在奇怪的是,这个查询有时返回num_行0,即使id和tid存在, 每几百万次查询中大约会发生一次, 顺便说一句,我在windows下使用5.6.35-log(我需要mysql旧密码函数,这就是我使用旧版本的原因)。 我知道可以将id和tx设置为主要的和唯一的,但我真的想知道为什么num_行返回0,而它应该有1。你知道我失踪了吗


有人面临类似的问题吗?

echo$query4什么类型是
$result1
?语句
id='$result1[id]'
看起来很奇怪……请注意,因此,当前代码将愉快地接受所有这些。请考虑使用代码或准备语句重写代码。另外,正如第一条评论中所建议的,
echo
-通过调用查询来调试它所包含的内容,可能会揭示出很多关于它为什么不能返回预期结果的问题。这可能是一个bug,只是不在mysql中,而在您的代码中。要么您遇到已知的并行插入问题(同时插入相同的id-tid对),要么您的参数出错。您需要记录查询才能找到它,我们无法仅基于您的代码来执行此操作。不可能并行插入,因为插入raw仅由一个脚本每5分钟运行一次。是,我记录了查询,num_结果返回0。