【发布时间】:2015-08-08 13:56:06
【问题描述】:
所以我正在尝试将记录输入数据库。一切都很好,但是我如何检查/确保我没有将相同的信息插入数据库。我尝试了以下代码,但它总是插入信息,无论它是否相同。如何检查和停止重复条目?
try {
$link = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbusername, $dbpassword);
$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = "INSERT INTO `users`(`name`, `username`, `avatar`) VALUES (:name, :username, :avatar)";
$statement = $link->prepare($query);
$statement->execute(array(
':name' => $_POST['name'],
':username' => $_POST['username'],
':avatar' => $_POST['avatar']
));
echo 'added!';
} catch(PDOException $e) {
if ($e->errorInfo[1] == 1062) {
// duplicate entry, do something else
echo 'this user has already been added';
} else {
// an error other than duplicate entry occurred
echo "Exception caught: $e";
}
}
【问题讨论】:
-
为防止 DB 中出现重复,请将您的列修改为
UNIQUE。要检查重复项,请使用rowCount() -
您可以在USERS表的用户名列中添加UNIQUE约束,然后可以限制重复条目