在人们用他们的用户名、密码和电子邮件填写注册表单后,我正在尝试创建两个数据库。
下面的第一个 MySQL 查询有效。它将他们的信息插入到用户表中。
第二个查询没有。它试图在确认表中插入一个加密密钥,我可以用它通过确认电子邮件来确认他们的帐户。
这是 PDO 异常消息:
带有消息“SQLSTATE [42000]”的异常“PDOException”:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在 C:\xampp\htdocs\tutorspot\sign 中的 'key, email) VALUES ('24', 'd96e77df9072c73da2612380a784f51b', 'r' at line 1' at line 1' 附近使用-up-tutors\index.php:80 堆栈跟踪:#0 C:\xampp\htdocs\tutorspot\sign-up-tutors\index.php(80): PDOStatement->execute() #1 {main}
if($action['result'] != 'error'){
$password = md5($password . 'salty');
try
{
$sql = 'INSERT INTO user (fullname, username, email, password, active) VALUES (
:fullname,
:username,
:email,
:password,
0)';
$s = $pdo->prepare($sql);
$s->bindValue(':fullname', $_POST['fullname']);
$s->bindValue(':username', $_POST['username']);
$s->bindValue(':email', $_POST['email']);
$s->bindValue(':password', $password);
$s->execute();
//get the new user id
$userid = $pdo->lastInsertId();
}
catch (PDOException $e)
{
$error = 'Error inserting signup info.';
include $_SERVER['DOCUMENT_ROOT'] . '/tutorspot/inc/error.html.php';
exit();
}
//create a random key for confirmation
$key = $username . $email . date('mY');
$key = md5($key . 'salty');
//add info to confirm table
try
{
$sql = 'INSERT INTO confirm (userid, key, email) VALUES (
:userid,
:key,
:email)';
$s = $pdo->prepare($sql);
$s->bindValue(':userid', $userid);
$s->bindValue(':key', $key);
$s->bindValue(':email', $_POST['email']);
$s->execute();
}
catch (PDOException $e)
{
$error = 'Error inserting confirm info.';
include $_SERVER['DOCUMENT_ROOT'] . '/tutorspot/inc/error.html.php';
echo $e;
exit();
}
}