在try/catch块中有三个sql查询。Autocommit是关闭的,并且所有三个查询都没有错误地运行,我已经验证了这一点(如果任何查询失败,它应该不会到达commit行,但是我已经通过xdebug验证了它,一次单步执行代码一行)。当代码到达commit()函数调用时,mysqli返回false,但没有错误消息。当前面的查询都工作时,提交怎么会失败呢?
代码基本上是这样的:
try{
$mysqli->autocommit(false);
$sql1 = "insert into...";
$mysqli->query($sql); // Works!
if($mysqli->error)
{
$mysqli->rollback();
throw new Exception....
}
$sql2 = "insert into...";
$mysqli->query($sql); // Works!
if($mysqli->error)
{
$mysqli->rollback();
throw new Exception....
}
$mysqli->commit(); // Fail
}
检查是否有:
尝试按照以下步骤进行调试:[--start transaction Code--]
Q2=mysqli-&>query(query2)//查询事务内部
打印'q2:'.mysqli-&>错误;
[---提交/回滚条件/代码---------]
您可能会收到此错误:“在只读事务中无法执行语句”。-&>;将begin transaction的参数更改为MYSQLI_TRANS_START_READ_WRITE
还要检查为要使用事务的表设置innoDB引擎。
您还可以在事务块之外测试查询,以确保它们没有错误。
问题内容: 我有一个返回内部服务器错误(500)的php应用程序时出现问题,但错误日志中未显示任何内容。 现在,我知道我要运行的内容有错误,我知道缺少某些文件,但没有丢失,但是应该在apache错误日志中显示某些内容(否则,我应该如何确切知道丢失的内容)。 我创建了一个测试脚本,该脚本在相同的vhost配置下出错,并且这些错误显示得很好,因此一切似乎都已正确配置到php / apache。是否有某
问题内容: 我试图逐行获取两个文件之间的差异,Python总是返回false。即使我比较相同的文件,Python(几乎)总是返回false。高飞的例子,但它在Python3.4.3上复制了我的问题。 Python正确地识别出第一行是相同的,但是之后的所有内容都是错误的。有人可以复制吗?有任何想法吗? 问题答案: 第一次迭代结束后,您已经用尽了迭代器,需要返回到文件的开头。 你只检查的第一线对的线,
在我的MySQL数据库中,我有一个表"table1",在列"name"上设置了唯一约束-我想防止重复的名称。 如果表中已经有名字'John',则此代码: 应该抛出insertUnonnequeException()(我自己的异常)。相反,它抛出InsertException()。 查询的执行返回false,执行进入if()循环。另外$db- 我不知道为什么当发生唯一密钥约束冲突时,mysqli不返
是否有一种方法可以将catch{}以序列化为JSON对象的方式从catch{}返回错误消息?我考虑向myObject添加一个List属性,并在其中存储错误。有没有更好的办法做到这一点?
问题内容: 以下代码似乎不起作用,即使该文件看起来很好也是如此。 在此先感谢您的帮助。 编辑:结果是我试图去Graphics.drawImage(images [0]);,它给了我一个空指针异常。这段代码可以很好地完成。 编辑:更改按建议移动if(!file.exists()),并将文件包装在输入流中。 问题答案: ImageIO.read(file); 如果找不到注册的 ImageReader,
问题内容: 当我尝试从Java代码中删除tomcat服务器conf / Catalina / localhost中存在的文件时,file.delete()始终返回false。但是,如果我通过file.exists()函数检查文件,它将返回true。我没有任何例外。请帮助我们为什么会这样。有什么解决方案? 问题答案: 当我尝试从Java代码中删除tomcat服务器conf / Catalina /