存储过程输出参数疑难问题,诚心请真正的凶猛高手指点存储过程代码: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”实在没辙了,请哪位高手指点一下。谢谢。
// 只有一个输出参数: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];
狼头老大,加你亲自指点的那句后,经测试,问题还是没解决,错误提示也是一样的。还有这个不是返回的多结果,存储过程中用的是 set XXX=YYY 语句。
可能你这个存储过程在php中压根就不支持。狼头的思路的正确的。
还是避免这类用法为妙。