Php 更新前检查列是否为零
如何在插入数据库之前检查列是否为零 这是我尝试过的,但在更新后,仍然插入一个带有最后插入ID的新行,但我只是希望它在不插入ID的情况下更新Php 更新前检查列是否为零,php,mysql,Php,Mysql,如何在插入数据库之前检查列是否为零 这是我尝试过的,但在更新后,仍然插入一个带有最后插入ID的新行,但我只是希望它在不插入ID的情况下更新 $lastID = mysqli_insert_id($DBcon); $query2=$DBcon->query("SELECT * FROM mergeing"); $compare_value = "0"; if($row = $query2->fetch_array()) { $merge
$lastID = mysqli_insert_id($DBcon);
$query2=$DBcon->query("SELECT * FROM mergeing");
$compare_value = "0";
if($row = $query2->fetch_array()) {
$merger = "INSERT into mergeing(donator_1) VALUES ('$lastID')";
if($row['donator_2'] !== "$compare_value") {
if ($DBcon->query($merger)) {
echo "success second";
}
}
}
while ($row = $query2->fetch_array()) {
$idd= $row["_id"];
$merg2 = "UPDATE mergeing SET donator_2='".$lastID."' WHERE _id=$idd";
if($row['donator_2'] === "$compare_value") {
if ($DBcon->query($merg2)) {
echo "success";
}
}
}
您似乎想检查是否有一个记录具有特定的donator_2值,如果是,则希望更新该记录。如果不存在这样的值,则需要插入新记录 那么您的代码可能如下所示:
$lastID = mysqli_insert_id($DBcon);
$compare_value = 0;
$DBcon->query("UPDATE mergeing SET donator_2 = $lastID WHERE donator_2 = $compare_value");
if ($DBcon->affected_rows) {
echo "success: updated";
} else {
$DBcon->query("INSERT into mergeing(donator_1) VALUES ($lastID)");
echo "success: inserted";
}
根据您的实际使用情况,但您可能还希望在插入新记录时设置donator_2值
请注意,如果$compare_值是由用户输入或您无法预测的其他来源决定的,那么您应该使用预先准备好的语句,否则代码将接受SQL注入。您的问题不清楚。您的代码正在执行插入、选择和更新。到底发生了什么?样本数据以及您正在获得和想要获得的结果将是一个很大的帮助。_iddonator_1 donator_2 donator 1 1 2 0 2 24 25 0 3 25 0 0 0您正在为一件简单的事情而兜圈子!