刚找到问题所在,因为一条删除语句:
$db->execute("delete from t_file where id = %d", $val['file_id']);
因为t_file的id是uuid字符型,所以事务里执行的是 delete from t_file where id = 0,然后被删了好多数据。
|  |      1kidlj      2020-11-05 00:20:33 +08:00 相比怀疑 MySQL,TP 或者 MySQL driver,更要首先怀疑自己的代码。 | 
|  |      2labulaka521      2020-11-05 08:20:22 +08:00 via iPhone 幻觉 | 
|  |      3wowo243      2020-11-05 08:55:49 +08:00 查代码,代码查不出来查 binlog | 
|      4s609926202 OP | 
|  |      5golden0125      2020-11-05 09:18:06 +08:00 应该判断$db->commit();的返回 而不是直接直接返回 true | 
|  |      6CyJaySong      2020-11-05 09:25:03 +08:00 直接就返回 true, 你确定 commit 成功了? | 
|      7zarte      2020-11-05 09:49:15 +08:00 很多人用的程序遇到问题先排除程序问题,直接查代码找问题可以省很多时间,还不会被嘲讽。 | 
|      8roundgis      2022-12-11 04:46:30 +08:00 via Android 先不要懷疑數據庫 |