0

DB に %s を含む多くの値があります。それらを置き換えるコードを PHP で作成しましたが、クエリが必要です。これはクエリで実行できますか。

私の価値観は、 需要がすべての期待を超えているように見えます.残念ながら、以前のメールで述べた時間枠で%sあなたのアクセサリを出荷することができません. ご注文は までに発送される予定です。%s%s%s

%s の複数のインスタンスを持つことができます。私はそれらを %1$s で 1 回目の同時実行 %2$s で置き換えて、続けたいと思います。

コードで正規表現を使用しました

if(preg_match_all('/(%s)/', $val, $match))

そしてループで私はこれをしました

echo $val =str_replace("%s",'%'.++$j.'$s',$val,$count);

しかし、これはすべて 1 つのクエリで実行できますか?最適化は気にしないでください。

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 に答える