sql >> データベース >  >> RDS >> Mysql

ストアドプロシージャ、MySQLおよびPHP

    @michal kralik-残念ながら、PDOが使用するMySQL C APIにはバグがあります。つまり、MySQLの一部のバージョンで上記のようにコードを実行すると、エラーが発生します。

    バグレポートは、bugs.mysql.com で確認できます。 。バージョン5.5.3以降および6.0.8以降で修正されました。

    この問題を回避するには、入力パラメーターと出力パラメーターを分離し、ユーザー変数を使用して次のような結果を保存する必要があります。

    $stmt = $dbh->prepare("CALL sp_takes_string_returns_string(:in_string, @out_string)");
    $stmt->bindParam(':in_string', 'hello'); 
    
    // call the stored procedure
    $stmt->execute();
    
    // fetch the output
    $outputArray = $this->dbh->query("select @out_string")->fetch(PDO::FETCH_ASSOC);
    
    print "procedure returned " . $outputArray['@out_string'] . "\n";
    


    1. MySQLUTCタイムスタンプ文字列からのActionScriptDateオブジェクトの作成

    2. MYSQLで削除を中止するトリガーを作成するにはどうすればよいですか?

    3. 別のテーブルのデータでmysqlテーブルを更新する

    4. 文字列の分割/連結方法の比較