我的存储过程有 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 ]."') ");
当我调用存储过程时传递相同数量的参数时,此代码可以正常工作。 我是存储过程的新手。所以请帮助我。
最佳答案
MySQL 不支持可选参数
我建议您将第四个参数传递为null
。然后在该过程中您可以检查是否为null
。
BEGIN
IF param IS NULL THEN
-- statements ;
ELSE
-- statements ;
END IF;
END$$
编辑:
http://bugs.mysql.com/bug.php?id=15975
虽然该请求已有 9 年之久,但仍未完成。
关于php - 如何使用可选参数调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25158793/