如何使用可选参数调用存储过程

时间:2014-08-06 11:07:52

标签: php mysql stored-procedures

我的Store程序有4个类型参数。我想在php mysql中调用存储过程时只使用3个参数。

我的存储过程是

DELIMITER $$

CREATE PROCEDURE `usptregister`
(
 IN ID bigint, 
 IN name varchar(100), 
 IN email varchar(100),
 IN phoneno varchar(15)
)

BEGIN

Insert INTO register
(id,fname, emailid, phone) values 
(id,name , email ,phone)  ;
END

和我的php代码,我调用的存储过程只传递3个参数。

$call = mysql_query("CALL usptregister('0','".$_POST[name ]."','".$_POST[email ]."') ");

当我在调用存储过程时传递相同的no参数时,此代码正在工作。 我是存储过程的新手。请帮助我。

1 个答案:

答案 0 :(得分:0)

MySQL不支持可选参数

我建议你将第四个参数作为null传递。然后在该过程中,您可以检查是否null

BEGIN
   IF param IS NULL THEN 
      -- statements ;
   ELSE 
      -- statements ;
   END IF;
END$$

编辑:

http://bugs.mysql.com/bug.php?id=15975

虽然请求已有9年,但仍未完成。