php - 使用存储过程在mysql中插入查询

标签 php mysql stored-procedures

我必须使用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/

相关文章:

php - 在 AppController 中对 beforeFilter() 和 beforeRender() 进行单元测试的正确方法

php - Yii Joined table 但不是所有选定的数据都被检索

mysql - 使用 2 个连接和 group by 子句优化 mysql 查询

php - 我的成员(member)个人资料页面未显示结果?

c# - 使用 EF6 将参数传递给存储过程

php - 如何从 PHP 运行 .bat 文件?

php - fopen() 不工作

php - 如何实际检查服务器是否可以同时处理多个 MySQL 连接

oracle - 我可以用来防止行被插入到 Oracle 表中的侵入性最小的锁定机制是什么?

stored-procedures - 使用 NULL 参数的 SQL Server 全文搜索 - 性能命中