投稿

ラベル(pdo)が付いた投稿を表示しています

PHP の PDO で debugDumpParams の出力をファイルなどに保存

SQL の実行結果を確認しようにも bindValue や bindParam を使っていると、実行内容を取得できない debugDumpParams を利用すると SQL へ渡った情報を標準出力に吐き出すことが出来る その内容をファイルなどに保存する $stmt -> execute (); if ( ob_start ( 'callback' ) ){      try {          $stmt -> debugDumpParams ();     } finally {          // ob_end_flush();          ob_end_clean (); // callback からの戻り値を出力しない     } } function callback ( $buffer ){      file_put_contents ( 'sqlresult.txt' , $buffer );      return $buffer ; } 通常は execute() の直後に debugDumpParams() を呼び出せば、標準出力に吐き出されますが ob_start(関数名) で、内容をコールバック関数へ渡しています。今回は 標準出力へ表示する必要が無いので、ob_end_clean() を用いていますが、callback の戻り値を出力する場合は ob_end_flush() を利用します。 $stmt -> execute (); if ( ob_start ( 'callback' ) ){      try {        ...