php PDO 用可编辑值替换查询中的匿名参数('?')
P粉654894952
P粉654894952 2023-09-02 11:38:14
[PHP讨论组]

我想要一种方法来显示 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` = ?) ;

我怎样才能做到这一点,所以只能绑定?已被替换。

P粉654894952
P粉654894952

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号