SqlServerストアドプロシージャから戻り値を取得しようとしています。しかし、FreeTDSを使用している私のUbuntu Serverで構文エラーが発生しています。私のWindowsマシンでSQL Serverストアドプロシージャを呼び出して、ルーメンからPHP PDOを使用して戻り値を取得すると、構文エラーが発生する
$stateId = 1;
$testData = 0;
$retVal = 0;
$pdo = DB::connection(env('DBCONNECTION'))->getPdo();
$stmt = $pdo->prepare('EXEC ? = GetMyCities_sp @StateID = ?, @TestData = ?');
$stmt->bindParam(1, $retVal, \PDO::PARAM_INT,20);
$stmt->bindParam(2, $stateId, \PDO::PARAM_INT);
$stmt->bindParam(3, $testData, \PDO::PARAM_INT | \PDO::PARAM_INPUT_OUTPUT, 20);
$result_status = $stmt->execute();
$resultSet = $stmt->fetchAll(\PDO::FETCH_OBJ);
print_r($resultSet);
echo "<br />";
$stmt->nextRowset();
echo "Return value is ".$retVal;
同じ作品罰金:
SQLSTATE[HY000]: General error: 20018 Incorrect syntax near '0'. [20018] (severity 15) [(null)]
以下は私のコードです。コードの何が間違っていますか?
は、あなたはこれを見たことがありますか? https://bugs.php.net/bug.php?id=58514 –
はい、私はこれらの2つがまったく同じかどうかはわかりません。私にとっては例外がスローされ、適切な場所でparamが実行されますが実行中に構文エラーが表示されます。 – Beniston
プレースホルダはキーワード/識別子ではなく、VALUESのみを表すことができます。 –