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

Mysql + php ze znakami specjalnymi, takimi jak „(apostrof) i (cudzysłów)

Twój ciąg sql będzie wyglądał następująco:

INSERT INTO `table` (`row1`) VALUES ('google's site')

Co nie jest prawidłowym stwierdzeniem. Jak napisała Nanne, pomiń ciąg przynajmniej mysql_real_escape_string :http ://php.net/manual/en/function.mysql-real-escape-string.php

Przeczytaj też o wstrzykiwaniu sqlhttp://en.wikipedia.org/wiki/SQL_injection

Pomyśl trochę:jeśli ktoś to opublikuje:$_POST['text'] o wartości:');delete from table;....

Możesz pożegnać się ze swoimi danymi :)

Zawsze filtruj/unikaj wejścia!

EDYCJA:Od PHP 5.5.0 mysql_real_escape_string i rozszerzenie mysql są przestarzałe. Zamiast tego użyj rozszerzenia mysqli i funkcji mysqli::escape_string



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyszukiwać dane wykresu/hierarchiczne w mysql

  2. EF6 z ​​MySQL. Podany klucz nie był obecny w słowniku

  3. Dzielenie Datetime na wartość daty i czasu

  4. Utworzyć tabelę bazy danych ActiveRecord bez kolumny :id?

  5. Potrzebujesz pomocy z błędem perla w korzystaniu z DBD::mysql