Php 如何防止插入重复记录?

Php 如何防止插入重复记录?,php,mysql,mysqli,Php,Mysql,Mysqli,我想让我的PHP检查我的数据库表中是否已经存在具有相同特定数据的内容 我有一个名为test的数据库和一个名为users的表 在这里,我想检查一行steamid是否已经存在,并且具有相同的$steamid编号 <?php // Datebase infomation $servername = "localhost"; $username = "root"; $password = ""; $dbname = "test"; $steamid = $steamprofile['steami

我想让我的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();
?>
您需要在
steamid
列中添加或

删除所有重复项后,可以运行以下命令:

ALTER TABLE users ADD PRIMARY KEY(steamid)
如果尝试将重复的
steamid
插入
users
表,则查询将失败


正如,你可以使用,但这也是。如果除了要存储在数据库表中的
streamid
之外还有其他列,则这是首选方法,因为它将更新这些值。但是,由于问题
INSERT-INTO-users(streamid)VALUES(“$streamid”)
中所述的查询只包含一个字段,因此除非您想捕获尝试复制记录的条件错误,否则它不会有多大影响,在这种情况下,您应该坚持使用
INSERT
语句。

您知道吗“替换为”?不,这是如何工作的?如果主键存在,行将被更新,否则将创建一行。哦,好的,我将尝试:)谢谢,我现在找到了。