脚本宝典收集整理的这篇文章主要介绍了php – 如果不存在具有相同值的行,则插入一行,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在我的MySQL表kh_comments中插入一个新行,但只有在不存在具有相同值的行时才应插入它.
这就是我尝试它的方式,我知道这是完全错误的:
public function prepare($author, $arr) {
$conn = new MysqLi($this->servername, $this->username, $this->password, $this->db_name);
foreach ($arr as $value) {
$stmt = $conn->prepare("INSERT INTO kh_comments WHERE NOT EXISTS (author, abstract) VALUES (?, ?)");
$stmt->bind_param("ss", $author, $value['id']);
$stmt->execute();
$stmt->close();
$conn->close();
}
}
我也尝试过使用INSERT IGNORE INTO ……但这对我来说也没用.
任何帮助,将不胜感激!
编辑:
解决方法:
$stmt = $conn->prepare("INSERT IGNORE INTO kh_comments(author,abstract) VALUES (?, ?)");
$stmt->bind_param("ss", $author, $value['id']);
$stmt->execute();
$stmt->close();
$conn->close();
请注意,要成功使用此方法(或REPLACE INTO方法甚至ON DUPLICATE KEY方法),您需要在不希望重复的字段上使用唯一索引.正如上面文档中的摘录中提到的那样
以上是脚本宝典为你收集整理的php – 如果不存在具有相同值的行,则插入一行全部内容,希望文章能够帮你解决php – 如果不存在具有相同值的行,则插入一行所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。