php调用mysql存储过程,如何实现。 我的代码如下:
存储过程为pro_rb_save(......),有三个参数,两个in的,一个out的。我的php代码如下:$a='红色';//输入参数a$b='绿色';//输入参数b$...
存储过程为pro_rb_save(......),有三个参数,两个in的,一个out的。
我的php代码如下:
$a='红色'; //输入参数a
$b='绿色'; //输入参数b
$return_msg=""; //输出参数
$dblink=mysql_connect($mysql_server_name,$mysql_username,$mysql_password) or die("can't connect to mysql");
mysql_select_db($mysql_database,$dblink) or die("can't select db");
$res=mysql_query("set @a=".$a, $dblink);
$res=mysql_query("set @b=".$b, $dblink);
$res=mysql_query("set @return_msg",$dblink);
$res=mysql_query("call pro_rb_save(@a, @b, @return_msg)",$dblink);
$return_msg=mysql_query("select @return_msg");
echo $return_msg;
我是php新手,请问上面的语法有没有错误,以及参数传给存储过程的写法对不对? 展开
我的php代码如下:
$a='红色'; //输入参数a
$b='绿色'; //输入参数b
$return_msg=""; //输出参数
$dblink=mysql_connect($mysql_server_name,$mysql_username,$mysql_password) or die("can't connect to mysql");
mysql_select_db($mysql_database,$dblink) or die("can't select db");
$res=mysql_query("set @a=".$a, $dblink);
$res=mysql_query("set @b=".$b, $dblink);
$res=mysql_query("set @return_msg",$dblink);
$res=mysql_query("call pro_rb_save(@a, @b, @return_msg)",$dblink);
$return_msg=mysql_query("select @return_msg");
echo $return_msg;
我是php新手,请问上面的语法有没有错误,以及参数传给存储过程的写法对不对? 展开
1个回答
展开全部
mysql存储过程返回2个资源,第一个是执行信息,第二个是存储过程返回结果。
mysql_*系列函数无法获取超过1个资源,需使用mysqli或PDO代替。
PDO:
$stmt = $db->prepare("CALL pro_rb_save(?,?,@return_msg);");
$stmt->bindParam(1, $a);
$stmt->bindParam(2, $b);
$stmt->execute ();
$outputArray = $db->query("select @return_msg")->fetch(PDO::FETCH_ASSOC);
var_export($return_msg);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询