运行以下代码时,我遇到错误2014:“命令不同步;您现在无法运行此命令”
$newConnection = new mysqli("127.0.0.1", username, password, "", 3306);
$nativeQueryResult = $newConnection->multi_query ("SELECT 1;");
但是当使用常规查询而不是多重查询时,我没有得到相同的错误
$nativeQueryResult = $newConnection->query ("SELECT 1;");
我对这个错误的理解是,当同一连接上一个先前查询的结果没有被释放时,就会发生这种错误,但是由于这是一个新连接,我不认为这仍然适用吗?
编辑:请注意,我不会对multi_query执行多次调用,这不是此行为其他常见问题的重复。这是新连接的第一个查询。
编辑:软件版本:OSX 10.10.2,PHP 5.5.19,MySql 5.6.22
最佳答案
发现问题,简单地说:没有问题...
我报告的错误消息来自在执行查询后直接在断点处暂停脚本时检查mysqli连接的变量。
但是,如果我回显这些变量(例如'error','errno'),它们将不包含我的IDE声明的值。
在遍历所有查询结果并释放mysqli_results对象之后,可以通过IDE查看的错误消失了,这使我相信这是IDE如何捕获这些变量的问题,并且显示错误。
进行此发现后,我直接通过mysql客户端运行查询,发现其中存在另一个语法错误,该错误导致了实际问题,2014年的错误只是掩盖了实际问题。
感谢大家的帮助,我正在使用Netbeans 8.0.2(内部版本201411181905),并且如果有人知道在其他IDE中这种行为是否相同,我想听听。