我想让我的PHP检查是否有相同的特定数据在我的数据库表中已经存在。
我有一个名为test的数据库,其中有一个名为users的表。
这是我想检查行steamid是否已经存在相同的$steamid号码。

<?php

// Datebase infomation
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";
$steamid = $steamprofile['steamid'];

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
// Create data

$sql = "INSERT INTO users (steamid)
VALUES ('$steamid')";

if (!$conn->query($sql) === TRUE) {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

最佳答案

您需要在PRIMARY KEY列上添加UNIQUE constraintsteamid
删除所有重复项后,可以运行以下命令:

ALTER TABLE users ADD PRIMARY KEY(steamid)

如果试图将重复的steamid插入users表,则查询将失败。
作为@Jeremy mentioned,您可以使用REPLACE,但这也only works if you have a PRIMARY KEY or UNIQUE constraint on the column。如果除了要存储在数据库表中的steamid之外还有其他列,则这是首选方法,因为它将更新这些值。但是,由于问题INSERT INTO users (steamid) VALUES ('$steamid')中所述的查询只包含一个字段,因此它没有多大的影响,除非您想捕获一个试图重复记录的条件错误,在这种情况下,您应该坚持使用INSERT语句。

10-02 05:15