1

我的存储过程有一个名为“@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 值为空,但如果我在查询浏览器中执行相同的代码,它工作正常,但在 php 内部它不是.....

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

这是重新调整空值。

拜托,谁能帮帮我。

4

1 回答 1

0

尝试:

$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() );
于 2013-05-17T10:44:41.987 回答