我们在两台服务器上具有相同的代码。使用MYSQLI_USE_RESULT时,该脚本在server1上运行良好,并且在server4上返回“命令不同步”。
我的第一个问题是使用其他任何MySQL命令时是否应该发生“命令不同步”,还是仅在使用同一表的第二个命令时才发生“命令不同步”。我的第二个问题是为什么在不同的服务器上结果会有所不同。
Server1:CentOS Linux 6.7,MySQL版本5.1.73,PHP 5.3.3
Server4:CentOS Linux 7.6.1810,MariaDB [MySQL版本5.5.60],PHP 7.3.3
$sql = "SELECT * FROM alfa" ;
$result = mysql_query_io($sql, MYSQLI_USE_RESULT) ;
while ($row = $result->fetch_assoc()) {
// more PHP code here
$sql = "SELECT * FROM beta WHERE pro = '" . $pro . "' AND end >= " . $tempo ;
$result2 = mysql_query_io($sql) ;
while ($row2 = $result2->fetch_assoc()) {
// more PHP code here
}
}
function mysql_query_io($sql, $method=MYSQLI_STORE_RESULT) {
// $method is MYSQLI_STORE_RESULT or MYSQLI_USE_RESULT
global $MYSQLI ;
if (!$result = $MYSQLI->query($sql, $method)) {
exit(1) ;
}
return $result ;
}