我可以使用带有一个参数的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 ;
答案 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);
引号将所有参数合并为一个字符串。