2017-05-25 2 views
-2

Ich versuche, eine Zeichenfolge in die Datenbank einzufügen, aber wenn es ein einzelnes Anführungszeichen (') enthält, wird die Abfrage ungültig.Abfrage einfügen Fehler

$set_content=$_POST['content']; 

$result = pg_query($db,"INSERT INTO programmes(title,picture,content) VALUES('$set_title','$pic_path','$set_content');"); 
+0

Statt machen Sie sich auf SQL Injection verwundbar, verwenden vorbereitete Anweisungen und Sie werden dieses Problem nicht: http://php.net/manual/en/function.pg-prepare.php –

+0

Sie PHP-Variable kann nicht in einem einfachen Anführungszeichen verwendet werden. versuchen mit unten Abfrage $ set_content = $ _ POST ['content']; $ result = pg_query ($ db, "EINFÜGEN IN Programme (Titel, Bild, Inhalt) VALUES ('". $ Set_title.' ',' ". $ Pic_path." ',' ". $ Set_content." ') ; "); – gyaan

Antwort

-1

http://php.net/manual/en/function.pg-query.php

String Interpolation von vom Benutzer gelieferten Daten Warnung ist äußerst gefährlich und wird wahrscheinlich SQL Injektion Anfälligkeiten führen. In den meisten Fällen sollte pg_query_params() bevorzugt werden, indem vom Benutzer angegebene Werte als Parameter übergeben werden, anstatt sie in die Abfragezeichenfolge einzufügen.

$result = pg_query_params($db,"INSERT INTO programmes(title,picture,content) VALUES($1,$2,$3);",Array($set_title,$pic_path,$set_content)); 
+0

Vielen Dank !! Es hat funktioniert. Die Abfrage läuft jetzt perfekt. –

+1

Wir sollten solche eklatanten Duplikate nicht beantworten. –