PDO を使用した Out パラメーターを使用したストアド プロシージャの呼び出し: 解決されたバグ
PDO マニュアルに従っているにもかかわらず、「OUT または INOUT 引数」が発生する場合があります。出力パラメータを指定してストアド プロシージャを呼び出すと、「...は変数ではありません」というエラーが発生します。これは、PHP および MySQL の以前のバージョンのバグが原因である可能性があります。
この問題を解決するには、次の回避策を実装してください。
DELIMITER // CREATE PROCEDURE `proc_OUT` (OUT var1 VARCHAR(100)) BEGIN SET var1 = 'This is a test'; SELECT var1; -- Select added to retrieve the output parameter END //
$stmt = $db->prepare("CALL proc_OUT(?)"); $stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000); $stmt->execute();
$result = $db->query("SELECT var1 FROM proc_OUT"); foreach ($result as $row) { echo $row['var1']; }
以上がPDO でストアド プロシージャを呼び出すときに発生する「OUT または INOUT 引数... は変数ではありません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。