sql >> データベース >  >> RDS >> Mysql

PHPとmySQL:htmlentitiesを正確に使用するのはいつですか?

    一般的な経験則は次のとおりです。

    変数をデータのクリーンな表現にする必要があります。つまり、「オブライエン」という名前の人の名前を保存しようとしている場合は、絶対にしないでください。 これらが欲しい:

    O'Brien
    O\'Brien
    

    ..なぜなら、それは彼の名前ではないからです。アンパサンドやスラッシュは含まれていません。その変数を取得して特定のコンテキストで出力する場合(たとえば、SQLクエリに挿入する、またはHTMLページに出力する)、 変更するときです。

    $name = "O'Brien";
    
    $sql = "SELECT * FROM people "
         . "WHERE lastname = '" . mysql_real_escape_string($name) . "'";
    
    $html = "<div>Last Name: " . htmlentities($name, ENT_QUOTES) . "</div>";
    

    htmlentitiesは必要ありません -データベースに保存されているエンコードされた文字列。 CSVやPDF、またはではないものを生成したい場合はどうなりますか HTML?

    データをクリーンに保ち、その瞬間の特定のコンテキストでのみエスケープします。



    1. Oracleでxmltableを使用する方法は?

    2. MySQL日時が時刻を返さない

    3. 致命的なエラー:未定義のメソッドmysqli ::bind_param()の呼び出し

    4. Symfony2、Doctrine2、MySql、ビューテーブル