【问题标题】:insert into database and prevent duplicate entry插入数据库并防止重复输入
【发布时间】: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约束,然后可以限制重复条目

标签: php pdo


【解决方案1】:

我假设这是您不想复制的用户名,因此您可以将“用户名”行上的数据库表检查为唯一。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 2018-06-29
    • 1970-01-01
    • 2016-04-11
    相关资源
    最近更新 更多