Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL调用函数中的“命令不同步”_Php_Mysql_Mysqli - Fatal编程技术网

Php MySQL调用函数中的“命令不同步”

Php MySQL调用函数中的“命令不同步”,php,mysql,mysqli,Php,Mysql,Mysqli,我正在尝试清理我的PHP,特别是MySQL SP调用。我希望能够通过以下简单的函数调用来执行存储过程: $result = run_procedure("sp_test(2)"); 我尝试了很多方法,但每次我遇到命令不同步时;现在无法运行此命令-多次执行函数时出错。 这是我的一次尝试。查看我如何将结果集的内容复制到数组中,并在返回数组之前释放结果集?为什么我仍然会出错 function run_procedure($procedure_string) { open_connect

我正在尝试清理我的PHP,特别是MySQL SP调用。我希望能够通过以下简单的函数调用来执行存储过程:

    $result = run_procedure("sp_test(2)");
我尝试了很多方法,但每次我遇到命令不同步时;现在无法运行此命令-多次执行函数时出错。 这是我的一次尝试。查看我如何将结果集的内容复制到数组中,并在返回数组之前释放结果集?为什么我仍然会出错

function run_procedure($procedure_string) {
   open_connection(); // A seperate func that opens the global $db_connection;

   $procedure_result = mysqli_query($GLOBALS["db_connection"], "CALL " . $procedure_string,MYSQLI_STORE_RESULT);
   if (mysqli_errno($GLOBALS["db_connection"])) {
      die("Query fail: " . mysqli_error($GLOBALS["db_connection"]));
   }
   $result_array = array();
   while($row = mysqli_fetch_assoc($procedure_result)) {
      $result_array[] = $row;
   }
   mysqli_free_result($procedure_result);
   return $result_array;
}
我确实更愿意返回结果集,而不是在这里构建数组,但我也不能创建这样的世界


有什么好主意吗?还有人使用单独的函数执行MySQLi吗?

该过程是否从一个无界选择返回多个结果集?我不是PHP专家,但可能需要获取更多数据并清除句柄?过程中只有一个select。但无论如何,如果我不调用SP,而是简单地使用相同的方法执行SQL,则会发生相同的情况……该过程是否从一个无界选择返回多个结果集?我不是PHP专家,但可能需要获取更多数据并清除句柄?过程中只有一个select。但无论如何,如果我不调用SP,而是简单地使用相同的方法执行SQL,同样的事情也会发生。。。