reetyn reetyn - 1 month ago 8
Perl Question

SQLite prepare method fails due to syntax error

So I want to create a database for Users and insert values into the fields using variable. Initially I tried using it calling the do function, but it wasn't reading the variables properly so I decided to just use prepare and execute separately. This is my code:

$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@gmail.com";
$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();


However, if I try running this code I get the following error:

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


I'm not sure exactly what the problem is?

CL. CL.
Answer
near ".": syntax error

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