1

我正在调用一个存储过程,它通过 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,似乎该过程正在读取每个逗号分隔的成员作为单独的输入,是否有人知道如何将整个集合作为单个参数发送?

4

1 回答 1

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)");
于 2012-12-05T23:44:56.543 回答