2017-04-13 2 views
0

Ich habe eine Anwendung erstellt, die Informationen aus dem Formular übernimmt und die Details in eine Datenbanktabelle namens "Warteschlange" legt. Die Tabellen bestehen aus den Entitäten "Position" (Primärschlüssel, Autoinkrement), "Name", "Service" und "QueuedAt". Ich bekomme diesen SQLlite :: exec Fehler beim Ausführen meiner Anwendung.SQLite3 :: exec Fehler (Einfügen von Daten in eine Tabelle)

Warning: SQLite3 :: exec(): in der Nähe von "jghjhgfjhgf": Syntaxfehler in E: \ Programy \ xampp \ htdocs \ QueueAppLocal \ process.php auf der Leitung 31 in der Nähe "jghjhgfjhgf": Syntaxfehler

Dies ist meine process.php-Datei, die Form Details in der Tabelle

<?php 
class MyDB extends SQLite3 
{ 
    function __construct() 
    { 
     $this->open('queue.db'); 
    } 
} 
$db = new MyDB(); 
if(!$db){ 
    echo $db->lastErrorMsg(); 
} else { 
    echo "Opened database successfully\n"; 
} 

if(isset($_POST['formSubmit'])) { 

    $varFirstName = $_POST['formFirstName']; 
    $varLastName = $_POST['formLastName']; 
    $varTitle = $_POST['formTitle']; 
    $varService = $_POST['formServices']; 

    $varFullName = $varTitle . " " . $varFirstName . " " . $varLastName; 
} 

    $sql =<<<EOF 
      INSERT INTO queue (Name,Service,QueuedAt) 
      VALUES ($varFullName, $varService, CURRENT_TIME); 
EOF; 

$ret = $db->exec($sql); 
if(!$ret){ 
    echo $db->lastErrorMsg(); 
} else { 
    echo "Records created successfully\n"; 
} 
$db->close(); 
+0

_Verwenden Sie keine String-Operationen für Abfragen! Sie sind ein Sicherheitsrisiko! _ Sehen Sie nach, wie Sie "parametrisierte Abfragen" in Ihrer Sprache durchführen. –

Antwort

-1

gerade realisiert, was das Problem ist, einzusetzen versucht. In $ sql-Werten habe ich vergessen, die Variable in einfache Anführungszeichen zu setzen wie zB VALUES ('$ varFullName', '$ varService', CURRENT_TIME);

Verwandte Themen