簡體   English   中英

如何使用mysqli獲取存儲過程的out參數

[英]how to get the the out parameter of the stored procedure using the mysqli

我的存儲過程有一個名為'@var'的out參數,它將是一個整數值。 我可以執行存儲過程,但是后來我無法獲得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() );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM