在PHP中将项添加到Mysql表中


Add item to Mysql table in PHP

我正试图向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也不允许添加重复的值。修复该问题,您的查询将按预期工作。