我查看了与我的问题本质上相似的其他一些问题,但我没有在此 PDO 数据库编写器脚本中使用数组或循环。对其他一些解决方案感到困惑,我仍然发现自己陷入了这个问题。
我的脚本是这样写的:
<?php
class DatabaseWriter
{
public function writeUserToDatabase($email , $name , $age , $gender , $country , $category)
{
$host = '***********';
$dbname = 'emailcollection';
$user = '**********';
$pass = '**********';
$jointime = '2013-01-07 11:19:08';
try {
$connection = new PDO("mysql:host=" . $host . ";dbname=" . $dbname, $user, $pass);
$connection -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$statement = $connection -> prepare("INSERT INTO emailcollection (emailaddress, name, age, gender, country, category, jointime) VALUES (:emailaddress, :name, :age, :gender, :country, :category, :jointime)");
$statement -> bindValue(':email', $email);
$statement -> bindValue(':name', $name);
$statement -> bindValue(':age', $age);
$statement -> bindValue(':gender', $gender);
$statement -> bindValue(':country', $country);
$statement -> bindValue(':category', $category);
$statement -> bindValue(':jointime', $jointime);
$statement -> execute();
$connection = NULL;
}catch (PDOException $e){
echo $e -> getMessage();
}
}
}
?>
输出:
SQLSTATE[HY093]:参数号无效:参数未定义
您可能想知道 $jointime 是什么。那是表中的最后一列,因为我收到“无效参数编号”的内容,我认为我应该完全匹配列数(我试图在写入用户时添加时间戳,在 PHP 或 SQL 中)。
提前感谢您的反馈。