PDO でストアド プロシージャを呼び出すときに発生する「OUT または INOUT 引数 ... は変数ではありません」エラーを解決する方法

Linda Hamilton
リリース: 2024-11-07 00:38:03
オリジナル
183 人が閲覧しました

How to Resolve

PDO を使用した Out パラメーターを使用したスト​​アド プロシージャの呼び出し

この質問では、PHP で PDO を使用して出力パラメーターを使用してストアド プロシージャを呼び出しようとしたときに発生した問題について説明します。エラー メッセージ「SQLSTATE[42000]: 構文エラーまたはアクセス違反: ルーチン mydb.proc_OUT の 1414 OUT または INOUT 引数 1 は、BEFORE トリガーの変数または NEW 疑似変数ではありません」が表示されます。

これを解決するにはこの問題が発生した場合は、次の手順が推奨されます。

  1. 出力パラメータを取得するために別のクエリを使用します。 出力パラメータを直接バインドする代わりに、別のクエリを実行して、ストアド プロシージャの実行後の出力パラメータ。例:
$dbh->query("CALL SomeStoredProcedure($someInParameter1, $someInParameter2, @someOutParameter)");
$dbh->query("SELECT @someOutParameter");
ログイン後にコピー
  1. ストアド プロシージャに "SELECT @someOutParameter" を挿入します: あるいは、ストアド プロシージャに "SELECT @someOutParameter" を挿入してからバインドします準備されたステートメントを使用して結果を出力パラメータに渡します。例:
$stmt = $dbh->prepare("CALL SomeStoredProcedure(?, ?)");
$stmt ->execute(array($someInParameter1, $someInParameter2));
ログイン後にコピー

これらのソリューションを実装すると、ストアド プロシージャの出力パラメーターに関連するエラーが解決されます。

以上がPDO でストアド プロシージャを呼び出すときに発生する「OUT または INOUT 引数 ... は変数ではありません」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!