插入数据库并防止重复输入

时间:2014-06-06 22:52:00

标签: php pdo

所以我试图将记录输入数据库。一切都插入正常,但我如何检查/确保我没有将相同的信息插入数据库。我尝试了以下代码,但它总是插入信息,无论它是否相同。我怎样才能检查和停止重复的条目?

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";
    }
}

1 个答案:

答案 0 :(得分:1)

我假设这是您不想复制的用户名,因此您可以检查行上的数据库表'用户名'独一无二。

希望它有所帮助