PDO 插入错误(未定义参数)
PDO Insert error (Undefined parameter)
我正在做一个小项目,我似乎无法让我的 PDO 插入查询之一工作。
我收到错误消息:
PHP Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /home/photobay/public_html/friendcon/register.php:24
这是我的代码:
$datetime = htmlspecialchars(stripslashes(@$_POST['datetime']));
$fname = htmlspecialchars(stripslashes(ucfirst(@$_POST['first-name'])));
$lname = htmlspecialchars(stripslashes(ucfirst(@$_POST['last-name'])));
$email = htmlspecialchars(stripslashes(@$_POST['email']));
$password = htmlspecialchars(stripslashes(@$_POST['password']));
$gender = htmlspecialchars(stripslashes(@$_POST['gender']));
$password = password_hash($password, PASSWORD_BCRYPT);
$stmt = $db->prepare("INSERT INTO `users` (`id`, `first-name`, `last-name`, `email`, `password`, `gender`, `datetime`) VALUES (:id, :first-name, :last-name, :email, :password, :gender, :datetime)");
$stmt->execute(array(
':id' => null,
':first-name' => $fname,
':last-name' => $lname,
':email' => $email,
':password' => $password,
':gender' => $gender,
':datetime' => $datetime
));
$insertId = $db->lastInsertId();
我已经检查过,所有参数都在里面,我的数据库中有 7 个字段,并且定义了 7 个参数。
我迷路了,我不知道出了什么问题。
注意:我是 PDO 的初学者,如果有帮助,我正在使用 PHP7
尝试将 :first-name
、:last-name
重命名为 :firstname
、:lastname
或 :first_name
、:last_name
,看看是否可行。
我正在做一个小项目,我似乎无法让我的 PDO 插入查询之一工作。
我收到错误消息:
PHP Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /home/photobay/public_html/friendcon/register.php:24
这是我的代码:
$datetime = htmlspecialchars(stripslashes(@$_POST['datetime']));
$fname = htmlspecialchars(stripslashes(ucfirst(@$_POST['first-name'])));
$lname = htmlspecialchars(stripslashes(ucfirst(@$_POST['last-name'])));
$email = htmlspecialchars(stripslashes(@$_POST['email']));
$password = htmlspecialchars(stripslashes(@$_POST['password']));
$gender = htmlspecialchars(stripslashes(@$_POST['gender']));
$password = password_hash($password, PASSWORD_BCRYPT);
$stmt = $db->prepare("INSERT INTO `users` (`id`, `first-name`, `last-name`, `email`, `password`, `gender`, `datetime`) VALUES (:id, :first-name, :last-name, :email, :password, :gender, :datetime)");
$stmt->execute(array(
':id' => null,
':first-name' => $fname,
':last-name' => $lname,
':email' => $email,
':password' => $password,
':gender' => $gender,
':datetime' => $datetime
));
$insertId = $db->lastInsertId();
我已经检查过,所有参数都在里面,我的数据库中有 7 个字段,并且定义了 7 个参数。
我迷路了,我不知道出了什么问题。 注意:我是 PDO 的初学者,如果有帮助,我正在使用 PHP7
尝试将 :first-name
、:last-name
重命名为 :firstname
、:lastname
或 :first_name
、:last_name
,看看是否可行。