我想要一种方法来显示 SQL 查询在用实际参数替换匿名参数 (?) 时的外观。
这仅用于可读性目的和调试,不会用作实际查询。
我发现这个函数在大多数情况下都有效:
return array_reduce($this->bindValues, function ($sql, $binding) {
return preg_replace('/\?/', is_numeric($binding) ? $binding : '"' . $binding . '"', $sql, 1);
}, $this->query);
更换?与实际值:
$data = array(
'item' => '1,
'type' => 'Are you ok.'
);
UPDATE `list` set `item`=?,`type`=? WHERE (`id` = ?) ; UPDATE `list` set `item`="1",`type`="Are you ok." WHERE (`id` = 1) ;
但是如果该值包含 ?我最终得到的是:
$data = array(
'item' => '1,
'type' => 'Are you ok?'
);
UPDATE `list` set `item`="1",`type`="Are you ok2" WHERE (`id` = ?) ;
我怎样才能做到这一点,所以只能绑定?已被替换。
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号