sql >> Databasteknik >  >> RDS >> Mysql

Mysql + php med specialtecken som '(Apostrof) och (citattecken)

Din sql-sträng kommer att vara:

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

Vilket inte är ett giltigt påstående. Som Nanne skrev, undkomm strängen åtminstone med mysql_real_escape_string :http ://php.net/manual/en/function.mysql-real-escape-string.php

Och läs om sql-injektionhttp://en.wikipedia.org/wiki/SQL_injection

Tänk lite:om någon postar detta:$_POST['text'] med värde:');delete from table;....

Du kan säga hejdå till dina uppgifter :)

Filtrera/escape alltid indata!

EDIT:Från och med PHP 5.5.0 är mysql_real_escape_string och mysql-tillägget utfasade. Använd mysqli-tillägget och mysqli::escape_string-funktionen istället



  1. Hur RIGHT()-funktionen fungerar i MySQL

  2. Unik begränsning på flera kolumner

  3. Hur skapar jag en CSV-fil från databasen i Python?

  4. MySQL Workbench avbryter anslutningen när den är inaktiv