PDO を使用した出力パラメーターを使用したストアド プロシージャの呼び出し
PDO を使用して出力パラメーターを使用してストアド プロシージャを実行しようとする場合は、次の点を考慮することが重要です。既知のバグ。このバグは、MySQL から直接呼び出された場合にプロシージャが期待どおりに動作しているにもかかわらず、次のエラーを引き起こす可能性があります:
"SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1414 OUT または INOUT argument 1 forルーチン mydb.proc_OUT BEFORE トリガーの変数または NEW 疑似変数ではありません。
この問題を解決するには、次の方法を使用してストアド プロシージャを実行することをお勧めします:
$dbh->query("CALL SomeStoredProcedure($someInParameter1, $someInParameter2, @someOutParameter)"); $dbh->query("SELECT @someOutParameter");
$stmt = $dbh->prepare("CALL SomeStoredProcedure(?, ?)"); $stmt->execute(array($someInParameter1, $someInParameter2));
このアプローチに従うことで、前述のバグが存在する場合でも、PDO を使用して出力パラメーターを指定してストアド プロシージャを効果的に呼び出すことができます。
以上が既知のバグが発生した場合に PDO を使用して出力パラメーターを指定してストアド プロシージャを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。