sql >> Databáze >  >> RDS >> Mysql

PHP &mySQL:Kdy přesně používat htmlentity?

Zde je obecné pravidlo.

Chcete, aby vaše proměnné byly čisté reprezentace dat. To znamená, že pokud se snažíte uložit příjmení někoho jménem "O'Brien", pak to rozhodně neděláte chci tyto:

O'Brien
O\'Brien

.. protože, no, tak se nejmenuje:nejsou v tom žádné ampersandy ani lomítka. Když vezmete tuto proměnnou a vypíšete ji v určitém kontextu (např.:vložíte do dotazu SQL nebo vytisknete na stránku HTML), že je, když jej upravíte.

$name = "O'Brien";

$sql = "SELECT * FROM people "
     . "WHERE lastname = '" . mysql_real_escape_string($name) . "'";

$html = "<div>Last Name: " . htmlentities($name, ENT_QUOTES) . "</div>";

Už nikdy nechcete mít htmlentities -zakódované řetězce uložené ve vaší databázi. Co se stane, když chcete vygenerovat CSV nebo PDF nebo cokoli, co není HTML?

Udržujte data čistá a unikněte pouze pro konkrétní kontext okamžiku.



  1. Nejste to vy, to jsem já (odstraňování problémů s I/O)

  2. Jakou funkci maskování dat bych měl použít?

  3. Jak získat záznam s maximální hodnotou v MySQL

  4. použití příkazu mysql LOAD v PHP selže, ale funguje to pomocí příkazového řádku