プロが教える店舗&オフィスのセキュリティ対策術

addcslashesの使い方について教えてください。

DBに繋げてそこから、部分一致させたいのですがaddcslashesの意味が合っているか教えて下さい。


$stmt->bindValue(1, '%' . addcslashes($name, '\\_%') . '%', PDO::PARAM_STR);


addcslashes($name, '\\_%') の'\\_%'の所なのですが、
\の後ろにあるものはメタ文字ではないので出力させる。という意味でしょうか?

もしくは、\はメタ文字ではないので出力させる。_は一文字以上を出力させる。%は0文字以上を出力させる。という意味でしょうか?

後者だった場合、%で0文字以上出力させるのですが、_で一文字以上出力させるとは意味がダブっている様に思うのですが_%にする意味を教えてください。宜しくお願いします。
カテ違いだったら、すみません。

A 回答 (1件)

>\の後ろにあるものはメタ文字ではないので出力させる。

という意味でしょうか?
――であってるかと。多分Like演算オペランド用にエスケープさせてるのでは。
    • good
    • 0
この回答へのお礼

ありがとうございます。
もう一つ教えてくださいm(__)m
>\の後ろにあるものはメタ文字ではないので出力させる。
ということは、(こちら部分一致をするための記述の一部のコードなのですが)後ろにある_と%が入っている文字も出力させる、出力させる為のものという事でいいんでしょうか?

お礼日時:2023/04/16 07:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!