用于替换%s的mysql查询

时间:2012-09-15 10:20:36

标签: php mysql regex replace

我在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);

但是这一切都可以通过一个查询来完成吗?没关系优化。

1 个答案:

答案 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, ... );