0

我对 PDO 有点陌生,我知道如何完美地选择数据,我的问题是插入。

$Finalize = $pdo->prepare("INSERT INTO `users` VALUES(`id`,:email,:hashedpassword,:firstname,:lastname,:gender,:bdaymonth,:bdayday,:bdayyear,'".time()."',:username)");
$Finalize->bindValue(':email', $email, PDO::PARAM_STR);
$Finalize->bindValue(':hashedpassword', $hashedPassword, PDO::PARAM_STR);
$Finalize->bindValue(':firstname', $first_name, PDO::PARAM_STR);
$Finalize->bindValue(':lastname', $last_name, PDO::PARAM_STR);
$Finalize->bindValue(':gender', $gender, PDO::PARAM_STR);
$Finalize->bindValue(':bdaymonth', $bday_month, PDO::PARAM_STR);
$Finalize->bindValue(':bdayday', $bday_day, PDO::PARAM_STR);
$Finalize->bindValue(':bdayyear', $bday_year, PDO::PARAM_STR);
$Finalize->bindValue(':bdayday', $username, PDO::PARAM_STR);
if($Finalize->execute() == false){ 
    echo '6';
    die;    
}

我究竟做错了什么?这个脚本只是使用 mysql_query 并且工作正常,所以我不知道我做错了什么。

4

1 回答 1

1

您两次将值绑定到':bdayday'参数,并且没有将任何值绑定到':username'参数:

$Finalize->bindValue(':bdayday', $bday_day, PDO::PARAM_STR);
// [ deletia ]
$Finalize->bindValue(':bdayday', $username, PDO::PARAM_STR);

默认情况下,当发生错误时,PDO 不会输出警告或抛出异常:您必须手动检查每个函数的返回值,以查看它是否成功并正确处理错误。

但是,您可以修改此默认行为

于 2013-01-19T20:42:19.083 回答