0
所以我试图输入记录到数据库中。一切插入正常,但我如何检查/确保我没有插入相同的信息到数据库中。我尝试了下面的代码,但它总是插入信息,无论它是否相同。我怎样才能检查和停止重复的条目?插入数据库,并防止重复输入
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";
}
}
可能重复:http://stackoverflow.com/questions/2219786/best-way-to-avoid-duplicate-entry-into-mysql-database – Ortix92
为了避免重复在DB,修改你的专栏作为'UNIQUE'。要检查重复项,请使用'rowCount()' –
您可以将UNIQUE约束添加到USERS表的用户名列,然后可以限制重复条目 –