Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP i mySQL:Kiedy dokładnie używać htmlentities?

Oto ogólna zasada.

Chcesz, aby zmienne były czystymi reprezentacjami danych. Oznacza to, że jeśli próbujesz zapisać nazwisko osoby o imieniu „O'Brien”, zdecydowanie nie chcesz te:

O'Brien
O\'Brien

.. bo cóż, to nie jest jego imię:nie ma w nim ani znaku ampersand, ani ukośnika. Kiedy weźmiesz tę zmienną i wypiszesz ją w określonym kontekście (np.:wstawiasz do zapytania SQL lub drukujesz na stronie HTML), to jest wtedy, gdy go zmodyfikujesz.

$name = "O'Brien";

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

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

Nigdy nie chcesz mieć htmlentities -zakodowane ciągi przechowywane w Twojej bazie danych. Co się dzieje, gdy chcesz wygenerować plik CSV, PDF lub cokolwiek, czego nie? HTML?

Utrzymuj dane w czystości i unikaj tylko konkretnego kontekstu w danej chwili.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Connector/C++ OS X 10.9 Mavericks i XCODE 5.0.2

  2. python 3.5 - django 1.10 - błąd instalacji mysqlclient Windows 7

  3. Nie znaleziono odpowiedniego sterownika dla 'jdbc:mysql://localhost:3306/mysql

  4. Znajdź odległość między dwoma punktami za pomocą szerokości i długości geograficznej w mysql

  5. mysql nie można wstawić, ponieważ nie ma wartości domyślnej?