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

Czy potrzebuję htmlentities() lub htmlspecialchars() w przygotowanych instrukcjach?

htmlentities i htmlspecialchars służą do generowania wyjścia HTML który jest wysyłany do przeglądarki.

Przygotowane zestawienia służą do generowania/wysyłania zapytań do silnika bazy danych .

Oba pozwalają na ucieczkę danych; ale nie uciekają w tym samym celu.
Więc nie, przygotowane instrukcje (dla zapytań SQL) nie przeszkadzają w prawidłowym używaniu htmlspecialchars /htmlentities (do generowania HTML)

Informacje o strip_tags :usunie tagi z ciągu, gdzie htmlspecialchars przekształci je w encje HTML.
Te dwie funkcje nie robią tego samego; powinieneś wybrać, którego chcesz użyć w zależności od Twoich potrzeb / tego, co chcesz uzyskać.

Na przykład za pomocą tego fragmentu kodu:

$str = 'this is a <strong>test</strong>';
var_dump(strip_tags($str));
var_dump(htmlspecialchars($str));

Otrzymasz taki rodzaj danych wyjściowych:

string 'this is a test' (length=14)
string 'this is a &lt;strong&gt;test&lt;/strong&gt;' (length=43)

W pierwszym przypadku brak tagu; w drugim, odpowiednio uciekł.

A z wyjściem HTML:

$str = 'this is a <strong>test</strong>';
echo strip_tags($str);
echo '<br />';
echo htmlspecialchars($str);

Otrzymasz:

this is a test
this is a <strong>test</strong>

Którą z nich chcesz? To to ważne pytanie ;-)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kategorie rekurencyjne z jednym zapytaniem?

  2. Jaka jest różnica między MySQL a SQL?

  3. Używanie LIKE w bindParam dla zapytania MySQL PDO

  4. WYBIERZ jedną kolumnę, jeśli druga ma wartość pustą

  5. Przesyłanie obrazu do obiektu blob bazy danych MySQL w codeigniter