我正在制作Android应用程序。每次应用程序关闭时,它都会将GCM注册ID插入数据库,但不需要多次插入单个GCM注册ID。
如何防止重复数据插入MySQL数据库?
<?php
// response json
$json = array();
/**
* Registering a user device
* Store reg id in users table
*/
if (isset($_POST["name"]) && isset($_POST["email"]) && isset($_POST["regId"])) {
$name = $_POST["name"];
$email = $_POST["email"];
$gcm_regid = $_POST["regId"]; // GCM Registration ID
// Store user details in db
include_once './db_functions.php';
include_once './GCM.php';
$db = new DB_Functions();
$gcm = new GCM();
$res = $db->storeUser($name, $email, $gcm_regid);
$registatoin_ids = array($gcm_regid);
$message = array("product" => "shirt");
$result = $gcm->send_notification($registatoin_ids, $message);
echo $result;
} else {
// user details missing
}
?>
答案 0 :(得分:2)
我会使用MySQL Unique Constraint:
http://dev.mysql.com/doc/refman/en/constraint-primary-key.html
否则,您可以通过仅在身份查询生成空结果时插入来以编程方式执行此操作。
答案 1 :(得分:0)
我通常做的是找出该行是否存在,如果存在,我会更新它,否则我会插入它。
答案 2 :(得分:0)
如果您希望阻止在列中输入重复数据,请将该列设为唯一。