Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql + php със специални знаци като '(Апостроф) и (Кавичка)

Вашият sql низ ще бъде:

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

Което не е валидно твърдение. Както Nanne писа, избягвайте низа поне с mysql_real_escape_string :http ://php.net/manual/en/function.mysql-real-escape-string.php

И прочетете за sql инжектиранетоhttp://en.wikipedia.org/wiki/SQL_injection

Помислете малко:ако някой публикува това:$_POST['text'] със стойност:');delete from table;....

Можете да кажете сбогом на вашите данни :)

Винаги филтрирайте/избягайте във входа!

РЕДАКТИРАНЕ:От PHP 5.5.0 mysql_real_escape_string и разширението mysql са остарели. Моля, вместо това използвайте разширението mysqli и функцията 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. Ограничение за външен ключ е неуспешно

  2. Как мога да променя MariaDB на MySQL в XAMPP?

  3. Как да считате NULL като MAX дата, вместо да я игнорирате в MySQL?

  4. Как мога да симулирам променлива на масив в MySQL?

  5. MySQL – Функции ELT() и FILED() за извличане на позицията на индекса от списъка