这是一个以前从未发生过的奇怪案例,我已经用mysqli和php编写了大约2年的代码,非常基本的东西,准备好的语句,查询执行等等,从WAMP开始,然后转移到ubuntu ,尝试了LAMP,不喜欢它,继续调查一个合适的测试环境,我发现PuPHPet,这是完美的,已经使用它几个月,一切都很好。
从来没有在这段时间里我不得不担心打开,关闭或提交连接,就像我在JAVA中所做的那样,我读到了php处理连接的地方,它在脚本运行时打开并关闭它们。我从来没有真正关注过,我应该这么做,我发现这个非常有用的帖子PHP + MySQL transactions examples,我将从现在开始使用它。
但我在这里发帖的原因是因为突然自动提交已经关闭。我打开了我常用的puphpet项目,尝试插入一些新条目,但它们没有插入。所以,我在工作台上进行了一些测试,手动插入了一些条目,插入了它们,但是我的AI索引增加了,这意味着我的应用程序确实插入了一些内容,或者至少它已经尝试过,或者因为AI计数器已经增加而发生了一些事情。得到了几位DBA的帮助,我们得出的结论是自动提交。
使用这段代码:
$res = mysqli_query($mysqli, "SELECT @@autocommit");
$row = mysqli_fetch_row($row);
printf("Autocommit: %s\n", $row[0]);
它打印“Autocommit:0”,所以它关闭了,但我没有改变任何东西,即使在生产环境中自动提交已经打开,或者至少我的插页留在那里,但我不知道为什么它改变了我的测试环境,所以我想知道会发生什么?有人有任何想法吗?