在PHP中将项添加到Mysql表
我试图向Mysql中的表中添加一个项,该项不会产生相同guid的倍数,但它只会不断添加倍数,即使我在重复密钥更新时使用了倍数在PHP中将项添加到Mysql表,php,mysql,Php,Mysql,我试图向Mysql中的表中添加一个项,该项不会产生相同guid的倍数,但它只会不断添加倍数,即使我在重复密钥更新时使用了倍数 <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "database"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error
<?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的倍数,但它只会不断添加倍数,即使我在重复密钥更新时使用了倍数
如果它继续添加重复项,那么您的密钥就不是您所认为的真正的密钥。guid上没有主/唯一约束,因此没有复制触发器
如果guid有这个约束,那么即使逻辑不正确,mysql也不允许您添加重复的值。修复此问题,您的查询将按预期工作。那么如何将此约束添加到guid?将guid设为主键或将唯一索引添加到ITTNKS:primary key guid