0

我在数据库中有很多值,其中包含 %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);

但这一切都可以通过一个查询来完成吗?更不用说优化了。

4

1 回答 1

0

您确定要执行此操作吗?您的数据库似乎包含旨在用作sprintf()or的第一个参数的格式字符串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, ... );
于 2012-09-15T14:39:14.623 回答