从PDO准备语句中获取原始SQL查询字符串

从PDO准备语句中获取原始SQL查询字符串

在对准备好的语句调用PDOStatement:Execute()时,是否有一种方法使原始SQL字符串得到执行?对于调试目的,这将是非常有用的。



holdtom
浏览 1087回答 3
3回答

心有法竹

/**  * 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;}
打开App,查看更多内容
随时随地看视频慕课网APP