ホームページ >データベース >mysql チュートリアル >既知のバグが発生した場合に PDO を使用して出力パラメーターを指定してストアド プロシージャを呼び出す方法

既知のバグが発生した場合に PDO を使用して出力パラメーターを指定してストアド プロシージャを呼び出す方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-07 15:53:03752ブラウズ

How to Call Stored Procedures with Output Parameters Using PDO When Encountering a Known Bug?

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

PDO を使用して出力パラメーターを使用してストアド プロシージャを実行しようとする場合は、次の点を考慮することが重要です。既知のバグ。このバグは、MySQL から直接呼び出された場合にプロシージャが期待どおりに動作しているにもかかわらず、次のエラーを引き起こす可能性があります:

"SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1414 OUT または INOUT argument 1 forルーチン mydb.proc_OUT BEFORE トリガーの変数または NEW 疑似変数ではありません。

この問題を解決するには、次の方法を使用してストアド プロシージャを実行することをお勧めします:

  1. Callストアド プロシージャと出力パラメータの選択:
$dbh->query("CALL SomeStoredProcedure($someInParameter1, $someInParameter2, @someOutParameter)");
$dbh->query("SELECT @someOutParameter");
  1. ステートメントの準備と出力パラメータの選択:
$stmt = $dbh->prepare("CALL SomeStoredProcedure(?, ?)");
$stmt->execute(array($someInParameter1, $someInParameter2));

このアプローチに従うことで、前述のバグが存在する場合でも、PDO を使用して出力パラメーターを指定してストアド プロシージャを効果的に呼び出すことができます。

以上が既知のバグが発生した場合に PDO を使用して出力パラメーターを指定してストアド プロシージャを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。