如何获取存储过程的out参数


how to get the the out parameter of the stored procedure using the mysqli

我的存储过程有一个名为'@var'的输出参数,它将是一个整数值。我可以执行存储过程,但是之后我无法获得out参数的值。

当我从mysql切换到mysqli时,这个问题出现了。

当我使用mysql连接时,代码工作正常,代码如下所示

    $query = "CALL myStoredProcedure('$LocationIdToEdit',@var)";           
    $result = mysql_query($query);
    $result = mysql_query("SELECT @var;");
    $row = mysql_fetch_row($result);
    $myVar = $row[0];

现在我将mysql更改为mysqli,如下所示

    $query = "CALL myStoredProcedure('$LocationIdToEdit',@var)";           
    $result = mysqli_query($conn, $query);
    $result2 = mysqli_query($conn,"SELECT @var;");
    $row = mysqli_fetch_row($result2);
    $myVar = $row[0];

现在$row值为null,但如果我在查询浏览器中执行相同的代码,它的工作很好,但在php中它不是.....

    $result2 = mysqli_query($conn,"SELECT @var;");
    $row = mysqli_fetch_row($result2);

这是返回空值。

请问,谁能帮帮我?

尝试:

$mysqli = new mysqli(  "HOST", "USR", "PWD", "DBNAME" );
$LocationIdToEdit= //your value here
$res = $mysqli->multi_query( "CALL myStoredProcedure($LocationIdToEdit,@var)" );
 do {
if ($result = $mysqli->store_result()) {
  printf( "<b>Result #%u</b>:<br/>", ++$results );
  while( $row = $result->fetch_row() ) {
    foreach( $row as $cell ) echo $cell, "&nbsp;";
  }
  $result->close();
  if( $mysqli->more_results() ) echo "<br/>";
}
} while( $mysqli->next_result() );