有如下代码:
global $db;
$query1 = "call user_degree('zhengfeng',@test);";
$db->query($query1);
$query2 = "select @test;";
$temp = $db->query($query2);
$rowset = array();
while($row = $db->fetch_array($temp,MYSQL_ASSOC))
{
array_push($rowset,$row);
}
print_r($rowset); //Array ( [0] => Array ( [@test] => 4 ) )
print_r($rowset[0][@test]); //return none要获取mysql存储过程返回的@test的值,这里我已经知道了$rowset的值是为一个二维数组。
可是我用$row[0][@test]却始终的不到这里面的值——"4"
求解释,求指教,各种求……
global $db;
$query1 = "call user_degree('zhengfeng',@test);";
$db->query($query1);
$query2 = "select @test;";
$temp = $db->query($query2);
$rowset = array();
while($row = $db->fetch_array($temp,MYSQL_ASSOC))
{
array_push($rowset,$row);
}
print_r($rowset); //Array ( [0] => Array ( [@test] => 4 ) )
print_r($rowset[0][@test]); //return none要获取mysql存储过程返回的@test的值,这里我已经知道了$rowset的值是为一个二维数组。
可是我用$row[0][@test]却始终的不到这里面的值——"4"
求解释,求指教,各种求……
楼上正解,完整过程如下:
/*mysql*/
user test;
create procedure sp_demo(inout p int) select;
/*php*/
<?php
$conn=mysql_connect('127.0.0.1');
$query_p=mysql_query('set @test=123');
$query=mysql_query('call test.sp_demo(@test)',$conn);
$query_r=mysql_query('select @test');
$result=mysql_fetch_array($query_r,MYSQL_ASSOC);
var_dump($result);
?>
$conn=mysqli_connect('127.0.0.1');
$query=mysqli_multi_query($conn,'set @test=123;call test.sp_demo(@test);select @test');
do{
$query1=mysqli_store_result($conn);
if($query1){
$result=mysqli_fetch_array($query1);
mysqli_free_result($query1);
print_r($result);
}
}while(mysqli_next_result($conn))
?>