我的存储过程有一个名为'@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, " ";
}
$result->close();
if( $mysqli->more_results() ) echo "<br/>";
}
} while( $mysqli->next_result() );