Php 如果mysql数据库重复,如何插入或更新
我有xml值类别和子类别,我想将其插入数据库中。 这段代码每天都会在服务器上运行,检查xml文件是否有更改,如果有更改,它将更新mysql数据库 我已经有了将记录从xml添加到mysql的代码,但是存在一些问题 当文件被执行时,它会在mysql中再次插入所有数据,而不是检查重复项,如果记录不存在则更新Php 如果mysql数据库重复,如何插入或更新,php,mysql,pdo,Php,Mysql,Pdo,我有xml值类别和子类别,我想将其插入数据库中。 这段代码每天都会在服务器上运行,检查xml文件是否有更改,如果有更改,它将更新mysql数据库 我已经有了将记录从xml添加到mysql的代码,但是存在一些问题 当文件被执行时,它会在mysql中再次插入所有数据,而不是检查重复项,如果记录不存在则更新 第一类 子类别1 第一类 子类别2 第2类 子类别3 检查唯一性不是php的责任。它应该是MySQL,如果MySQL允许重复记录,那么您就有一个设计缺陷!更正您的表格设计,然后使用 INSERT
第一类
子类别1
第一类
子类别2
第2类
子类别3
检查唯一性不是php的责任。它应该是MySQL,如果MySQL允许重复记录,那么您就有一个设计缺陷!更正您的表格设计,然后使用
INSERT INTO table(category, sub_category)
VALUES(:cat, :subCat)
ON DUPLICATE KEY UPDATE sub_category= values(sub_category); -- and so on
如果您不想更新,请使用
INSERT IGNORE INTO ... -- this will insert all rows that is not producing any error
检查唯一性不是php的责任。它应该是MySQL,如果MySQL允许重复记录,那么您就有一个设计缺陷!更正您的表格设计,然后使用
INSERT INTO table(category, sub_category)
VALUES(:cat, :subCat)
ON DUPLICATE KEY UPDATE sub_category= values(sub_category); -- and so on
如果您不想更新,请使用
INSERT IGNORE INTO ... -- this will insert all rows that is not producing any error
看这个:它应该对你有帮助看这个:它应该对你有帮助我试着这样做,但结果是一样的。问题是表中不能有唯一的列,因为子类别可能在多个类别中重复使用insert ignore into@伊瓦科巴拉维试图这样做,但结果是一样的。问题是表中不能有唯一的列,因为子类别可能在多个类别中重复使用insert ignore into@伊瓦科巴熔岩