-
起きている現象
- phpからプロシージャを呼び出す
- 呼び出された(データ登録用の)プロシージャが走り、mysqlのテーブル上にデータ登録がされる
- テーブルの結果を確認してみるとプロシージャで登録されるはずの30件のデータが、2件しか登録されていない
- プロシージャを実行直後に、sleepを入れると30件すべて登録される。
-
備考
- 実行されるプロシージャについて
- 受け渡されるパラメータによってデータ登録するプロシージャです。
- 他に試したこと
- execute関数ではなく、exec関数を使用してみた。
- 実行されるプロシージャについて
-
ソースコード
$a = 2022; $b = 333; $c = "test"; // プロシージャの呼び出し $sql = "call insert_Data(?,?,?);"; $stmt = $this->db->prepare($sql); $stmt->bindParam(1, $a, \PDO::PARAM_INT); $stmt->bindParam(2, $b, \PDO::PARAM_INT); $stmt->bindParam(3, $c, \PDO::PARAM_STR|\PDO::PARAM_INPUT_OUTPUT, 20); $xxx = $stmt->execute(); // ここにsleepを入れると動く sleep(10); // プリントデバッグ------------------------------------------------------------------------------------------------------------------------ ob_start(); $aaa = "ここから-----------------------------------------x"; $bbb = "ここまで-----------------------------------------x"; var_dump($aaa); var_dump($xxx); var_dump(date("Y/m/d H:i:s")); var_dump($bbb); $str = ob_get_contents();//バッファの内容を取得 ob_end_clean(); ~(以下省略) * ```
回答1件
あなたの回答
tips
プレビュー