php - 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();
感谢您的帮助!
解决方案
找到了解决方案!
我当然会分享它,以防其他人遇到这个问题。后来我发现我的上传脚本的真正问题是:当您通过 PHP 插入数据表时,查询可能会在检查时返回真值(
如果($查询->执行())
) 但在 sql 中,查询会一一触发,脚本会为您返回 true,这是 true,但是当您选择它太快时,您可能无法获得所有数据。
但是,如果您使用TRANSACTION,则可以避免此问题,甚至插入更安全!
推荐阅读
- r - 如何在类网络对象的**超图**中转换矩阵
- react-native - 将 Skype for business 应用程序与 React Native 移动应用程序深度链接
- python - Django - 如何使用 JQuery Ajax 插入多个表单数据
- python - 如何小写我的部分网址地址的第一个字母?
- python - 如何在 Python 3 中扩展 datetime.date?
- python - 使用 Selenium 选择自动完成列表 - 在访问另一个列表之前必须关闭一个列表
- html - 使用 DIV 在 bootstrap 中对齐和缩放图像
- sql - 可以使用什么功能来防范幻读异常,而不是使用 Serializable 隔离级别?
- java - Jackson 对象映射器为整数返回 0,为字符串返回 null
- http - 强制 Gitlab 在 Go 失败时重试 webhook