0

こんにちは、よろしくお願いします。

データベースからデータを取得しています。mysql_real_escape_stringデータは、データベースに追加されたときにすでに通過しています。

取得したら、それを生の変数と比較し、結果に応じて、元のデータベースデータを別の異なるフィールドにデータベースに再挿入する場合があります。

私の質問は、mysql_real_escape_stringデータベースから取得したこのデータを使用する必要がありますか?

データにはエスケープする必要がある文字が含まれている可能性があり、バックスラッシュはデータベースに保存されていないと思います。

私のコードは次のとおりです。

if(isset($row['location_uri']) && $row['location_uri'] != $location_uri)
    {
    $session_previous_page = $row['previous_page_uri'];
    }
else
    {
    $session_previous_page = $row['location_uri'];
    }

また、生データと比較する前に、データベースデータで何かをする必要があり$_SERVER['REQUEST_URI']ますか?

あなたが与えることができるどんな助けにも感謝します.

4

2 に答える 2

3

再度適用する必要があります。エスケープ関数はスラッシュなどを入れるので、有効な SQL 構文です。これらのスラッシュは、実際にはデータベースに保存されません。

于 2010-07-12T16:14:47.543 に答える
1

はい。あなた自身の質問に答えました - 特殊文字は読み取り時に変換されるため、書き込み時にそれらを再エスケープする必要があります。

に関する正確な質問がわかりません$_SERVER['REQUEST_URI']。しかし、これらの変数を決して信頼すべきではない場合。したがって、少なくとも DB クエリで比較する場合は、エスケープすることをお勧めします。

于 2010-07-12T16:14:35.713 に答える