如何使用正则替换多个'?'呢
$sql = "insert into t set a=?,b=?,c=?,d=?";
$rep=[1,"aa",2,"bb"];
// 替换结果 insert into t set a=1,b='aa',c=2,d='bb'
用preg_replace应该怎么写呢?
如何使用正则替换多个'?'呢
$sql = "insert into t set a=?,b=?,c=?,d=?";
$rep=[1,"aa",2,"bb"];
// 替换结果 insert into t set a=1,b='aa',c=2,d='bb'
用preg_replace应该怎么写呢?
可以参考这个项目
$sql = 'xxxxxxxx';// SQL
$bindings = [];// 参数
$sqlWithPlaceholders = str_replace(['%', '?', '%s%s'], ['%%', '%s', '?'], $sql);
// 这一行主要是对 Laravel 内日期对象转换
// $bindings = $query->connection->prepareBindings($bindings);
// 这里需要拿到 PDO 链接,给一些字符串参数添加引号
$pdo = $query->connection->getPdo();
$realSql = $sqlWithPlaceholders;
if (count($bindings) > 0) {
// 如果你不想要 PDO 连接,那就可以把 array_map 替换成 $bindings
$realSql = vsprintf($sqlWithPlaceholders, array_map([$pdo, 'quote'], $bindings));
// 这样
// $realSql = vsprintf($sqlWithPlaceholders, $bindings);
}
var_dump($realSql);
$sql = "insert into t set a=?,b=?,c=?,d=?";
$rep=[1,"aa",2,"bb"];
echo vsprintf(str_replace('?','\'%s\'',$sql), $rep);
insert into t set a='1',b='aa',c='2',d='bb'
来个js的
arr = [1,"aa",2,"bb"];
str.replace(/\?/g, function(item, index) {
let ele = arr.shift() // 取队首
return ele
})
2 回答1.5k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答883 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答940 阅读
1 回答920 阅读
1 回答852 阅读
为啥非要用正则
https://www.php.net/manual/zh...