sql >> Database teknologi >  >> RDS >> Mysql

Mysql + php med specialtegn som '(Apostrof) og (anførselstegn)

Din sql-streng vil være:

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

Hvilket ikke er et gyldigt udsagn. Som Nanne skrev, undslipp strengen i det mindste med mysql_real_escape_string :http ://php.net/manual/en/function.mysql-real-escape-string.php

Og læs om sql-injektionhttp://en.wikipedia.org/wiki/SQL_injection

Tænk lidt:hvis nogen poster dette:$_POST['text'] med værdi:');delete from table;....

Du kan sige farvel til dine data :)

Filtrer/undgå altid input!

EDIT:Fra og med PHP 5.5.0 er mysql_real_escape_string og mysql-udvidelsen forældet. Brug venligst mysqli-udvidelsen og mysqli::escape_string-funktionen i stedet



  1. Sådan indstilles startværdien manuelt som 1000 i MySQL

  2. SQLite - Slet data

  3. Parse JSON i TSQL

  4. Oprettelse af en webapp fra bunden ved hjælp af Python Flask og MySQL:Del 5