我正试图向Mysql中的一个表添加一个项,该表不会生成同一guid的倍数,但它只是不断添加倍数,即使我使用了"ON DUPLICATE KEY UPDATE"。
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "database";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$guid = mysqli_real_escape_string($conn, htmlspecialchars($_GET['guid']));
$sql = "INSERT INTO users (guid) VALUES ('$guid') ON DUPLICATE KEY UPDATE guid='$guid'";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
我试图在Mysql中向一个表中添加一个项目,该表不会生成同一guid的倍数,但它只是不断添加倍数,即使我使用了"ON DUPLICATE KEY UPDATE"。
如果它不断添加重复项,那么您的密钥就不是您所认为的真正的密钥。guid上没有主/唯一约束,因此没有重复触发器。
如果guid
有这个约束,那么即使使用不正确的逻辑,mysql也不允许添加重复的值。修复该问题,您的查询将按预期工作。