MySQL存储过程使用多个参数

时间:2014-07-09 08:54:44

标签: 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 个答案:

答案 0 :(得分:1)

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

解决方案:

**

  

$ sqlquestion = sprintf(&#34; call updatequestion(%s,%s,%s)&#34;,   $ skill,$ user,$ level);

**

度过愉快的一天

答案 1 :(得分:0)

将其更改为:

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

引号将所有参数合并为一个字符串。

相关问题