首页 > 解决方案 > PHP MySQL 相同的查询返回不同的行数

问题描述

我正在使用 php 和 mysql 从数据库中插入和选择数据。昨天我发现了一个新的“错误”,即:我在网站上使用了两次相同的查询——相同的查询——但结果不同

当然,我不明白为什么结果不同。甚至行数也不同。只是为了帮助您想象我的错误,我正在使用一个类似的查询:

$Query = $conn->query("SELECT * FROM `table` WHERE(ID='$id' AND isDeleted = FALSE) ORDER BY Date DESC");
$numRows = $Query->num_rows;

$numRows的值有时大于 0,有时大于0。重新加载页面后,这些值是否相同。我的意思是......一旦我重新加载页面,它似乎是正确的,但之后当我再次重新加载页面时,错误再次发生(或不发生)。

该站点也用于使用方法 - ajax to php 插入数据。对于插入数据,我使用$conn->prepare(); 和 $conn->execute();

感谢您的帮助!

标签: phpmysqlsqlselectinsert

解决方案


找到了解决方案!

我当然会分享它,以防其他人遇到这个问题。后来我发现我的上传脚本的真正问题是:当您通过 PHP 插入数据表时,查询可能会在检查时返回真值(

如果($查询->执行())

) 但在 sql 中,查询会一一触发,脚本会为您返回 true,这是 true,但是当您选择它太快时,您可能无法获得所有数据。

但是,如果您使用TRANSACTION,则可以避免此问题,甚至插入更安全!


推荐阅读