字符串集作为多个参数PHP MYSQL传入

时间:2012-12-05 23:40:50

标签: php javascript mysql stored-procedures

我正在调用一个存储过程,该过程通过PHP获取3个参数(1 IN,2 OUT)。我使用以下命令将以下字符串集"1,2,3,4"从JavaScript传递给PHP:

xmlhttp.open("GET","gethint.php?q="+str,true);
xmlhttp.send();

从PHP我得到字符串并像这样调用它(在完成所有正确的SQL连接之后):

$q=$_GET["q"];
$result = mysql_query("CALL mst2($q, @eset, @leng)");

我得到的错误是Invalid query: Incorrect number of arguments for PROCEDURE fall12018.mst2; expected 3, got 6

如果我删除@eset和@leng我仍然得到错误但是用4而不是6,似乎该过程在每个逗号分隔成员中读取作为单独的输入,是否有人知道如何将整个集合发送为一个论点?

1 个答案:

答案 0 :(得分:1)

现在看来你的电话看起来像这样(6个参数,由于$q的值中的逗号):

$result = mysql_query("CALL mst2(1,2,3,4, @eset, @leng)");

尝试在引号中包含$ q。

$result = mysql_query("CALL mst2('{$q}', @eset, @leng)");

这将导致这个(3个参数):

$result = mysql_query("CALL mst2('1,2,3,4', @eset, @leng)");