我的mysqli INSERT代码有些麻烦.
我真的不知道如何处理重复,但我已经阅读了很多帖子,我试图让它工作,但当我用相同的变量执行此代码时,行数增加.你能帮我修一下这段代码或找另一种检查重复的方法吗?
// Create connection
$conn = new MysqLi($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection Failed: " . $conn->connect_error);
}
if ($stmt = $conn->prepare(
"INSERT INTO matka (jmeno, prijmeni, bydliste, telefon, email)
VALUES (?,?,?,?,?)
ON DUPLICATE KEY UPDATE
jmeno = VALUES(jmeno),
prijmeni = VALUES(prijmeni),
bydliste = VALUES(bydliste),
telefon = VALUES(telefon),
email = VALUES(email)" )) {
$stmt->bind_param("sssss", $jmeno_matky, $prijmeni_matky, $bydliste_matky, $telefon_matky, $email_matky);
$stmt->execute();
printf("%d Row inserted.\n", $stmt->affected_rows);
$stmt->close();
$id_matky = $conn->insert_id;
$conn->close();
}
解决方法:
ON DUPLICATE KEY依赖于定义的PRIMARY或UNIQUE键.这意味着键定义的列对于两行不能相同.
例如,如果您在电子邮件上创建了一个UNIQUE键,如下所示:
创建索引matka_email ON matka(电子邮件)
然后当您尝试插入记录并且电子邮件地址已经存在时,它将在ON DUPLICATE KEY之后更新查询中定义的字段
请注意,Unique键可能涉及多个列,如下所示:
创建索引matka_alldata ON matka(jmeno,prijmeni,bydliste,telefon,email)
查看文档:
> https://dev.mysql.com/doc/refman/5.7/en/create-index.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。