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を削除してもエラーが発生しますが、6ではなく4を使用すると、プロシージャはコンマで区切られた各メンバーを個別の入力として読み込んでいるようです。セット全体を単一の引数として送信する方法を知っている人はいますか? ?

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 に答える