我的存储过程有一个名为'@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);
这是重新调整空值。
拜托,任何人都可以帮助我。
答案 0 :(得分: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, " ";
}
$result->close();
if( $mysqli->more_results() ) echo "<br/>";
}
} while( $mysqli->next_result() );