gpt4 book ai didi

php - 如何检查sql值是否已存在于表中以防止重复?

转载 作者:行者123 更新时间:2023-11-29 13:39:28 25 4
gpt4 key购买 nike

我已经正确创建了sql数据库和表,

但是,当我尝试使用 while 循环在 php 中打印值时,我注意到打印了重复的值。起初我以为是 while 循环。然后我注意到每次运行 php 代码时,每次运行代码时都会打印更多的重复项。我不想重复。

以下是我为表编写代码的方式:

$sql = "CREATE TABLE IF NOT EXISTS alarms (
alarmID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (alarmID),
Title CHAR(30),
Description TEXT,
DT DATETIME
)";

这是我插入值的方法:

mysqli_query ($con, "INSERT INTO alarms(Title, Description, DT)
VALUES('eat', 'Agha loves eating', '2013-08-05 00:15:12')");

这是我的 while 循环,它打印出值:

$result = mysqli_query($con,"SELECT * FROM alarms");
while ($row = mysqli_fetch_array($result)){
echo $row['alarmID'] . " <br> " . $row['Title'] . " <br> " . $row['Description'] . " <br> " . $row['DT'];
}

如何插入值同时防止重复?

最佳答案

我假设插入值的代码与打印它们的代码一起?这意味着每次刷新时都会运行插入代码,再次插入值。除非必要,否则不应运行插入代码。

但是,为了在插入数据时防止重复,您需要在再次插入值之前进行检查,或者需要修改查询以防止重复。阅读这些内容,它们会有所帮助。

http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html <- 如何编写一个查询,该查询将插入新记录并在记录已存在时依靠更新。

http://dev.mysql.com/doc/refman/5.0/en/replace.html <- 相似的结果,不同的方法。

这些方法要求您将主键设置为唯一,并且主键的组成部分是插入查询的一部分。如果这是不可能的,并且您的主键是单独的(例如自动增量),那么您唯一的选择是在再次创建条目之前检查该条目。

关于php - 如何检查sql值是否已存在于表中以防止重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18285684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com