我在DB中有很多值,其中包含%s。我用PHP编写了一个代码来替换它们,但我需要一个查询。可以在查询中完成。
我的价值观就像
需求已超出所有%s
预期,不幸的是,我们无法在我们之前的电子邮件中说明的时间范围内发送您的%s
附件。 %s
我们希望按%s
发送您的订单。
它可以有%s的多个实例。我希望将%1 $ s替换为第一次并发%2 $ s,然后继续。
我在代码中使用了正则表达式
if(preg_match_all('/(%s)/', $val, $match))
在循环中我做了这个
echo $val =str_replace("%s",'%'.++$j.'$s',$val,$count);
但是这一切都可以通过一个查询来完成吗?没关系优化。
答案 0 :(得分:0)
你确定要这么做吗?您的数据库似乎包含格式字符串,旨在用作sprintf()
或printf()
的第一个参数:
$dbh = new PDO("mysql:dbname=$dbname;charset=utf8", $username, $password);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$qry = $dbh->prepare('SELECT format_string FROM my_table WHERE string_id = ?');
$qry->execute([1234]);
while ($row = $qry->fetch()) printf($row['format_string'], $s1, $s2, ... );