3

の OOP メソッドを使用して文字列をエスケープしていますmysqli_real_escape_string。入力中の入力をセッション変数に保存して、正しくエスケープしていることを確認しました。正しくエスケープしているようですが、データベースに入力されたものを確認すると、一重引用符と二重引用符の前にスラッシュが表示されません。

したがって、ブラウザで次のようにエコーします。

Array
(
    [formContent] => I\'m always here!
)

しかし、データベースには次のように表示されます。

I'm always here!

これは、コードのどこかに問題があるということですか?

4

2 に答える 2

5

いいえ、それは正常です。mysqli_real_escape_string一重引用符を自動的にエスケープします。

紐ができたら、

I'm always here!

mysqli_real_escape_stringとして処理しました

I\'m always here!

したがって、データベースに保存されます。それがどのように機能するかです。

于 2012-12-12T06:34:00.210 に答える
0

mysqli_real_escape_string— 接続の現在の文字セットを考慮して、SQL ステートメントで使用する文字列内の特殊文字をエスケープします。

一重引用符をエスケープします(あるレベルでSQLインジェクションから保存します)

hello 'world

mysqli_real_escape_stringとして処理しました

hello \'world

あなたはstripslashes削除するために使用することができます\

于 2012-12-12T06:36:08.917 に答える