+----+----------+-----------+
| id | gamertag | timestamp |
+----+----------+-----------+
所以我有上面的表格我想只插入一个gamertag(如果它尚不存在)。我怎么能这样做?
$gamertag = "l RaH l";
mysql_query("INSERT INTO `gamertags`(`gamertag`)VALUES ('".$gamertag."')");
答案 0 :(得分:7)
您应该同时执行以下两项操作:{* 3}}列游戏广告和使用insert ignore
。
唯一索引可防止添加重复行。
insert ignore会阻止mysql在未添加重复行时发出警告。
答案 1 :(得分:3)
Index gamertag column as unique。然后只有第一次插入才有效。如果存在相同的gamertag,则INSERT
将失败。
答案 2 :(得分:2)
您可以尝试INSERT IGNORE
,查看关于此关键字的mysql开发页面:)
编辑 - 基于以下评论:你需要将gamertag列作为唯一索引。
那些赞成的人可能已经把这个用于“理解”。
编辑 - 更新答案的最终答案:
$gamertag = "l RaH l";
mysql_query("INSERT IGNORE INTO gamertags(gamertag)VALUES ('".$gamertag."')");
不要忘记使用独特的索引 - 如果是gamertags列
答案 3 :(得分:0)
MySQL
的插入或更新不可用(至少不是)查看MySQL的这些工作:http://bogdan.org.ua/2007/10/18/mysql-insert-if-not-exists-syntax.html