2017-02-22 9 views
1

Ich will, muss Query-String von URL lesen und sie in eine SQLite-Datenbank ich mit dieser Fehlermeldung konfrontiert speichern:Text einfügen SQLite, wo Text "

PHP Warning: SQLite3::exec(): near ",": syntax error 

Aber ich nicht die Probleme:

$Tel = $_REQUEST["from"]; 
$Content = $_REQUEST["text"]; 
echo $Tel = strip_tags($Tel); 
echo $Content = strip_tags($Content); 
    $sql =<<<EOF 

     INSERT INTO foodordering(Fullname, Tel, RecievingTime, Content) 
     VALUES ("Ehsan", $Tel, date('now'), $Content); 

EOF; 

    $ret = $db->exec($sql); 
+2

Sie benötigen, um Ihre Eingaben zu sichern, um mehr über vorbereitet lesen Anweisungen, oder/und manuell entgehen Sie Ihren Eingaben – hassan

Antwort

1

Wie von @HassanAhmed erwähnt, passiert dies, wenn Eingaben nicht richtig gehandhabt werden; Sie sehen das gleiche Problem, als ob jemand gegen Sie SQL injection verwendet hätte. Die schnelle Lösung ist es, die Felder in Anführungszeichen zu wickeln:

VALUES ("Ehsan", "$Tel", date('now'), "$Content"); 

Was sollten die Parameter tun verbindlich:

$sql =<<<EOF 

INSERT INTO foodordering(Fullname, Tel, RecievingTime, Content) 
VALUES ("Ehsan", :tel, date('now'), :content); 

EOF; 

$stmt = $db->prepare($sql); 
$stmt->bindValue(':tel', $_REQUEST['from']); 
$stmt->bindValue(':content', $_REQUEST['text']); 

$ret = $stmt->execute();