PHP里调用MYSQL存储过程问题,进来看一下吧!
我建存储过程如下:
DROP PROCEDURE IF EXISTS updadmpsw //
CREATE PROCEDURE updadmpsw (IN oldpsw VARCHAR(40), IN newpsw VARCHAR(40), OUT res INT)
BEGIN
DECLARE oldp VARCHAR(40);
DECLARE newp VARCHAR(40);
SET res = 0;
SET oldp = oldpsw;
SET newp = newpsw;
SELECT @adpsw := `value` FROM `system_param_data_tbl` WHERE `config_flag` ='ADMINPSW';
IF @adpsw = oldp THEN
UPDATE `system_param_data_tbl` SET `value` = newp WHERE `config_flag` = 'ADMINPSW';
SET res=1;
END IF;
END; //
在命令行输入
call updadmpsw("admin","",@p);和
select @p;
可以得到结果。
但是在PHP程序里
用下面语句:
1) $res=mysql_quer("set @res=\"".$newPsw."\"",$db);
2) $res =mysql_quer("call updadmps(\"".$oldPsw."\",\"".$newPsw."\",@res);",$db);
3) $res =mysql_quer("select @res;",$db);
4) $row=mysql_fetch_array($res ,MYSQL_ASSOC);
5) return $row['@res'];
在第2条语句就返回false了。
请高手看看是哪里出了问题,再线等,解决既给分!