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新手,请问上面的语法有没有错误,以及参数传给存储过程的写法对不对?
展开
 我来答
MarkGo
2017-02-04 · 测试API接口使用的啊1
MarkGo
采纳数:257 获赞数:427

向TA提问 私信TA
展开全部

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);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式