我必须使用mysql中的存储过程插入数据。这是我的SP和对该SP的函数调用。但是我无法使用它们插入值。您能验证一下并告诉我该怎么做吗? SP为:
delimiter ; ;
DROP PROCEDURE IF EXISTS sp_insertUserDetails ; ;
CREATE PROCEDURE sp_insertUserDetails( )
BEGIN
INSERT INTO tbl_userDetails
( strEmail,bitAllowClicktoFBProfile,bitIsAbbreviateLastName, strAboutMe )
VALUES ($strEmail, $bitAllow, $bitAbbreviate, $strAbout);
END
从 php 文件调用此 SP:
$query = mysql_query("CALL sp_insertUserDetails($strEmail, $bitAllow, $bitAbbreviate, $strAbout)");
最佳答案
您没有为 SP 定义任何参数 - 您是否尝试直接从 SQL 调用它,例如:
mysql> call sp_insertUserDetails("foo", "bar", "dave", "str");
ERROR 1318 (42000): Incorrect number of arguments for PROCEDURE test.sp_insertUserDetails; expected 0, got 4
你需要这样的东西
DROP PROCEDURE IF EXISTS sp_name;
delimiter ;;
CREATE PROCEDURE sp_name(fname varchar (20), lname varchar(20))
BEGIN
SELECT concat('Hello ', fname, ',', lname);
END
;;
delimiter ;
关于php - 使用存储过程在mysql中插入查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8146977/