Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅当值不为';不存在_Php_Mysql - Fatal编程技术网

Php 仅当值不为';不存在

Php 仅当值不为';不存在,php,mysql,Php,Mysql,所以我有上面的表,我只想插入一个玩家代号,如果它还不存在的话。我怎么能这么做 +----+----------+-----------+ | id | gamertag | timestamp | +----+----------+-----------+ 。那么只有第一次插入才有效。如果存在相同的玩家代号,则插入将失败。您可以尝试插入忽略,检查mysql开发页面中有关此关键字的信息:) 编辑-根据以下评论:是的,您需要将gamertag列作为唯一索引。 而那些投票赞成的人可能会认为这是“理解

所以我有上面的表,我只想插入一个玩家代号,如果它还不存在的话。我怎么能这么做

+----+----------+-----------+
| id | gamertag | timestamp |
+----+----------+-----------+

。那么只有第一次插入才有效。如果存在相同的玩家代号,则插入将失败。

您可以尝试插入忽略,检查mysql开发页面中有关此关键字的信息:)

编辑-根据以下评论:是的,您需要将gamertag列作为唯一索引。
而那些投票赞成的人可能会认为这是“理解的”

编辑-更新答案最终确定答案:

$gamertag=“l RaH l”
mysql_查询(“将IGNORE插入gamertag(gamertag)值(“'.$gamertag.”)中)


别忘了唯一索引,因为MySQL无法使用gamertags列插入或更新(至少不可用)


看看MySQL的这些解决方法:

您应该同时做两件事:在gamertag列上和使用
insert ignore

唯一索引可防止添加重复的行


insert ignore可防止mysql在未添加重复行时发出警告。

您可以使用unique,如@sarwar answer,或使用[insert…ON duplicate KEY UPDATE][1],因此,如果密钥存在,则只更新时间戳[1]:即假设约束首先存在,或者你不能使用这样的查询。MySQL已经有了
INSERT。。。从7年前的版本4.1开始进行重复密钥更新。
INSERT IGNORE
本身并不能阻止
INSERT
创建重复行,他要求不要这样做。这并不能回答问题。那些投了赞成票的人显然不知道他们在做什么,不应该参与这个问题。@dan OP没有提到任何关于停止插入的内容。是的,他提到了,这是他的全部问题。告诉他每次只运行一个INSERT IGNORE查询只会导致他要求不做的事情。@dan“只想在玩家代号不存在的情况下插入它。”
INSERT IGNORE
会做到这一点(再次假设存在唯一索引)。在这个问题中,我找不到插入失败并出现错误?@andrewferra:您的原始代码应该是这样的:
$gamertag=“l RaH l”;mysql_查询(“将忽略插入到
gamertags
gamertag
)值(“$gamertag.”)中)别忘了为玩家标记唯一索引column@Dan谢谢以及添加链接。
$gamertag = "l RaH l";
mysql_query("INSERT INTO `gamertags`(`gamertag`)VALUES ('".$gamertag."')");