Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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_Insert - Fatal编程技术网

如果不存在,则插入php

如果不存在,则插入php,php,mysql,insert,Php,Mysql,Insert,我有密码 mysql_query("INSERT INTO authors (author) VALUES ('$rec_fic_author') WHERE NOT EXISTS (SELECT * FROM authors WHERE author='$rec_fic_author')") or die("cannot insert author"); 其中authors是包含authord(pk)和author的表 $rec_fic_author是一个_POST变量 我试图这样做,当一个

我有密码

mysql_query("INSERT INTO authors (author) VALUES ('$rec_fic_author') WHERE NOT EXISTS (SELECT * FROM authors WHERE author='$rec_fic_author')") or die("cannot insert author");
其中authors是包含authord(pk)和author的表 $rec_fic_author是一个_POST变量

我试图这样做,当一个人添加作者时,代码会检查数据库中是否有同名的人(在“作者”列下)。如果不是,则添加条目 我将作者作为文本,由于某些原因,我无法使其在phpMyAdmin中唯一。 我查看了一下替换和插入。。在重复密钥更新时,但据我所知,它们都需要有问题的值是唯一的/PK值。这里的情况并非如此


帮助?

这是一个很好的查询,“不存在”通常非常快,如果您有好的索引。但我想知道为什么这不起作用


我认为这对你的关注很有用,检查它。

我建议您使用PK或UK(如wonk0所建议的),然后您可以使用INSERT语句和INGNORE子句


您能用PK之类的信息共享您的表结构吗?为什么不为作者选择一个表并检查mysql_num_rows()?如果等于0,则insert.AUTHER as TEXT的尺寸似乎有点过大,CHAR/VARCHAR应该可以;它们可以有一个唯一的索引;cf@wonk0,我不是说这是一个有效的链接,但我建议一个已经发布的链接,如果可能的话,这是好的。。。。(请投票支持我的答案)。