2014-06-06 199 views
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"; 
    } 
} 
+0

可能重复:http://stackoverflow.com/questions/2219786/best-way-to-avoid-duplicate-entry-into-mysql-database – Ortix92

+2

为了避免重复在DB,修改你的专栏作为'UNIQUE'。要检查重复项,请使用'rowCount()' –

+0

您可以将UNIQUE约束添加到USERS表的用户名列,然后可以限制重复条目 –

回答

1

我假设这是你不想复制的用户名,所以你可以检查你的数据库表上的行'用户名'作为UNIQUE。

希望它帮助