从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
提交
取消
