我想让我的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();
?>
答案 0 :(得分:1)
您需要在steamid
列上添加PRIMARY KEY
或UNIQUE constraint
。
删除所有重复项后,您可以运行此命令:
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
陈述。