【发布时间】:2014-04-17 14:42:12
【问题描述】:
我是 PHP 和 MySQL 的新手,我正在尝试将数据插入到数据库中,在我尝试使用 PDO 的准备方法之前,它一直运行良好。它返回 catch 错误,我不知道为什么 - 我还想知道使用未命名占位符还是命名占位符是最佳做法?
用户名和密码变量在我的代码前面定义,并使用$_POST从用户那里获取数据。
编辑:getMessage() 错误显示SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'username' cannot be null
if (!empty($user) && (!empty($password)) ) {
try {
$results = $db->prepare("INSERT INTO user_info (username, pass) VALUES (?,?)");
$results->bindParam(1,$username);
$results->bindParam(2,$password);
$results->execute();
} catch (Exception $e) {
echo "Could not insert data in to the database";
}
}
【问题讨论】:
-
echo $e->getMessage();看看是什么错误。 -
SQLSTATE[23000]:违反完整性约束:1048 列“用户名”不能为空
-
您引用了
$user,然后又引用了$username。是哪个?