存储过程代码:begin
// 只有一个输出参数:out str varchar(50)
select * from t1001; //第一条语句
set str="hello the world!";//第二条语句,输出参数
end
php代码:$res=mysql_query("call outstatement(@str)",$conn) or die("Query failed 55:" .mysql_error());
$res=mysql_query("select @str",$conn) or die("Query failed 66:" .mysql_error());
$row=mysql_fetch_row($res);
echo $row[0];
当存储过程中第一条语句注释掉后,PHP中能输出正确的结果。
当不注释第一条语句时,PHP中产生错误 :“Query failed 66:Commands out of sync; you can't run this command now”实在没辙了,请哪位高手指点一下。谢谢。
mysql_free_result($res);
$res=mysql_query("select @str",$conn) or die("Query failed 66:" .mysql_error());
$row=mysql_fetch_row($res);
echo $row[0];因为你的这个存储过程返回了一个结果集 select * from t1001;
加上红色mysql_free_result($res);
语句后,经测试,还是通不过。一样的错误提示。
select @name参数