php - MySQL存储过程使用多个参数

标签 php mysql mysqli

我可以使用带有一个参数的 MySQL 存储过程,但是当我尝试使用多个参数时,存储过程不会被调用。我将粘贴我的 php 代码,然后粘贴 SQL 代码。谁能指出为什么它不起作用?

谢谢

<?php 

//DB Connection include
include '/connection/proccon.php';    

 $skill=1;
 $level=1;
 $user=1;

//SQL for identify user 
$sqlquestion = sprintf("call updatequestion('%s, %s, %s')", $skill, $user, $level);

echo $sqlquestion;
$resultquestion = mysqli_query($link, $sqlquestion);    

?>

下面的 SQL

--Procedure: updatequestion

--DROP PROCEDURE IF EXISTS updatequestion;

DELIMITER |

CREATE DEFINER = 'root'@'%' PROCEDURE updatequestion 
(
  IN  v_uid    int,
  IN  v_level  int,
  IN  v_qid    int
)
BEGIN
INSERT INTO answer (qid,uid,level) VALUES(v_qid,v_uid,v_level);
END|

DELIMITER ;

最佳答案

更好地使用引号,您在 2 个引号中包含了 3 个参数,我认为这是错误的。

解决方案:

**

$sqlquestion = sprintf("call updatequestion(%s, %s, %s)", $skill, $user, $level);

**

祝你有美好的一天

关于php - MySQL存储过程使用多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24649281/

相关文章:

java - 使用java连接mysql数据库失败

php - mysqli 插入查询的结果不稳定

php - 使用 mySQL 数据库中的值或 '0' 填充月份

php - 选择 .. where ... 或从 2 个表中选择

使用knex创建MYSQL数据库

java - 如何将当前数据库更改为另一个?

php - PHP 中的 mysql_query 包含返回 mysql 错误的变量

php - MySQLi 不返回获取的数据

php - Json_encode 或删除最后一个逗号?

php - 如何从 php 或 regex 中的字符串末尾删除特定字符