为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

holdtom 2019-07-02 16:42:53
从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;}


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 1067 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信