從PDO準備語句中獲取原始SQL查詢字符串在對準備好的語句調用PDOStatement:Execute()時,是否有一種方法使原始SQL字符串得到執行?對于調試目的,這將是非常有用的。
3 回答

心有法竹
TA貢獻1866條經驗 獲得超5個贊
/** * 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;}
添加回答
舉報
0/150
提交
取消