2016-10-29 2 views
0

Also ich möchte eine Datenbank für Benutzer erstellen und Werte in die Felder einfügen, die Variable verwenden. Anfangs habe ich versucht, die do-Funktion aufzurufen, aber die Variablen wurden nicht richtig gelesen. Daher entschied ich mich, preparate und execute separat zu verwenden. Dies ist mein Code:SQLite Vorbereitungsmethode schlägt aufgrund von Syntaxfehler fehl

$dbh->do("DROP TABLE IF EXISTS Users"); 
$dbh->do("CREATE TABLE Users(
zid TEXT, 
Name TEXT, 
Email TEXT, 
password TEXT, 
Mates TEXT, 
Program TEXT, 
Courses TEXT, 
Suburb TEXT, 
Birthday TEXT)"); 

$zid = "z33432523"; 
$name = "John Doe"; 
$email = "[email protected]"; 
$password = "alien"; 
$mates = "z3459148 z3458291"; 
$program = ""; 
$courses = ""; 
$suburb = ""; 
$birthday = "13/5/1992"; 

$sth = $dbh->prepare('INSERT INTO Users VALUES (?, ?, ?, ?, ?. ?, ?, ?, ?)'); 
$sth->execute($zid, $name, $email, $password, $mates, $program, $courses, $suburb, $birthday); 
$dbh->disconnect(); 

Allerdings, wenn ich diesen Code versuchen laufe ich die folgende Fehlermeldung erhalten:

DBD::SQLite::db prepare failed: near ".": syntax error at ./dbm.pl line 35. 

Ich bin mir nicht sicher, was das Problem ist?

+2

Wenn Sie einen Fehler erhalten, der ein '.' in deinem SQL, dann solltest du vielleicht anfangen, indem du dein SQL nach Punkten durchsuchst :-) –

+0

@DaveCross haha ​​das ist peinlich ...... danke – reetyn

+1

Schwitz nicht über einen Punkt. Das passiert uns allen. ;) Zu einer anderen Anmerkung, es sieht so aus, als ob deine Spalte 'Mates' IDs der Freunde dieses Benutzers enthalten soll. Wenn Sie mehrere Relationen in eine Spalte einfügen, ist Ihr Datenbankentwurf _unnormalisiert_, was für eine relationale Datenbank eine schlechte Entscheidung ist. Es wäre klüger, eine andere Tabelle zu erstellen, z. 'Users_Mates' mit den Spalten' relation_id', 'user_id' und' mate_id'. Jetzt können Sie einen Datensatz für jede Beziehung haben (im wahrsten Sinne des Wortes) ... – simbabque

Antwort

1
near ".": syntax error 

INSERT INTO Users VALUES (?, ?, ?, ?, ?. ?, ?, ?, ?) 
            ^
+0

danke ich möchte sterben – reetyn

Verwandte Themen