2
MySQLログを調べずにPDOが準備しているものを確認したい。基本的には、クエリを実行する直前に作成した最終クエリです。MySQLログを参照せずに準備されたPDOクエリを表示およびデバッグする
これを行う方法はありますか?
MySQLログを調べずにPDOが準備しているものを確認したい。基本的には、クエリを実行する直前に作成した最終クエリです。MySQLログを参照せずに準備されたPDOクエリを表示およびデバッグする
これを行う方法はありますか?
組み込みの方法はありません。 bigwebguy関数を作成しましたin one of his answers:
/**
* Replaces any parameter placeholders in a query with the value of that
* parameter. Useful for debugging. Assumes anonymous parameters from
* $params are are in the same order as specified in $query
*
* @param string $query The sql query with parameter placeholders
* @param array $params The array of substitution parameters
* @return string The interpolated query
*/
public static function interpolateQuery($query, $params) {
$keys = array();
# build a regular expression for each parameter
foreach ($params as $key => $value) {
if (is_string($key)) {
$keys[] = '/:'.$key.'/';
} else {
$keys[] = '/[?]/';
}
}
$query = preg_replace($keys, $params, $query, 1, $count);
#trigger_error('replaced '.$count.' keys');
return $query;
}