Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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 当某些行已经存在时,如何防止SQL插入?_Php_Mysql_Database - Fatal编程技术网

Php 当某些行已经存在时,如何防止SQL插入?

Php 当某些行已经存在时,如何防止SQL插入?,php,mysql,database,Php,Mysql,Database,我有一个数据库,里面有不同的电影、演员和导演 要将导演与电影连接,我使用的是一个表,其中包含以下内容: 电影id和导演id-因此,当我为电影添加导演时,必要的id会插入到此表中 所以我已经有了一堆身份证,而且效果很好。例如: movie_id - director_id 10 15 11 17 9 13 现在,当我将另一个id为9的导演添加到id为13的电影中时,我有两行完全相同,这是我不希望发生的事情。如下所示: movie_id - di

我有一个数据库,里面有不同的电影、演员和导演

要将导演与电影连接,我使用的是一个表,其中包含以下内容:

电影id导演id-因此,当我为电影添加导演时,必要的id会插入到此表中

所以我已经有了一堆身份证,而且效果很好。例如:

movie_id - director_id
10         15
11         17 
9          13
现在,当我将另一个id为9的导演添加到id为13的电影中时,我有两行完全相同,这是我不希望发生的事情。如下所示:

movie_id - director_id
10         15
11         17 
9          13
9          13 
相反,如果已经有一行具有相同的胶片id等于相同的导演id,则不应插入


我怎样才能防止这种情况发生

只需从
movie\u id
director\u id
列创建唯一键即可

SQL示例:

ALTER TABLE `table_name` ADD UNIQUE `index_name` (`movie_id`, `director_id`);
INSERT IGNORE INTO `table_name` (...) VALUES (...)
INSERT INTO `table_name` (...) VALUES (...) ON DUPLICATE KEY UPDATE `column` = [new_value]
然后为
INSERT
查询添加
IGNORE
,它将防止出现
重复条目…
错误消息

SQL示例:

ALTER TABLE `table_name` ADD UNIQUE `index_name` (`movie_id`, `director_id`);
INSERT IGNORE INTO `table_name` (...) VALUES (...)
INSERT INTO `table_name` (...) VALUES (...) ON DUPLICATE KEY UPDATE `column` = [new_value]
如果要在条目已存在的情况下更新某个数据,则可以使用

SQL示例:

ALTER TABLE `table_name` ADD UNIQUE `index_name` (`movie_id`, `director_id`);
INSERT IGNORE INTO `table_name` (...) VALUES (...)
INSERT INTO `table_name` (...) VALUES (...) ON DUPLICATE KEY UPDATE `column` = [new_value]

如果返回的任何行数据重复,请使用select query with where子句,否则请插入数据,使这两列的数据唯一。将自动阻止数据插入数据库。