文字列内の n 番目のオカレンス (プレースホルダー) を置き換えるシンプルで高速なソリューションが必要です。
たとえば、SQL クエリの n 番目の疑問符は、指定された値に置き換える必要があります。
$subject = "SELECT uid FROM users WHERE uid = ? or username = ?";
だから、私は次のような関数が必要str_replace_nth($seach, $replace, $subject, $nth)
で、2番目の疑問符の場合は次のように呼び出す必要がありますstr_replace_nth("?", $username, $subject, 2);
何か案は?
PS PDO を使用するように勧めないでください。私はFDO (Facebook Data Object)に取り組んでいるので、PDO に似たインターフェイスを備えたライブラリですが、FQL 用です。
重要なお知らせ!最初の置換後にクエリが変更され、インデックスが失われるため、このアプローチは悪いことがわかりました。(夜遅くにプログラミングしているときに悪いアプローチが発生します:() @GolezTrol がコメントで言及しているように、一度にすべてを置き換えることをお勧めします。