【发布时间】:2017-07-22 18:56:54
【问题描述】:
当我使用空数据库运行页面时,它会正确插入数据。当我再次运行该页面时,它显示数据库中已经有一个 ID,但它还是插入了它。不知道如何或为什么,但我已经尝试了 if 语句中的所有布尔组合,但无法正确选择。
//pass in an ID to compare:
function checkOrderID($orderID) {
//Connect to the database:
$mysqli = new mysqli("localhost", "root", "", "price");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
//Ask the database for some sweet, sweet data:
$stmt1 = "SELECT orderID FROM orders";
$result = $mysqli->query($stmt1);
//flag (we want to believe that there are no similar IDS so lets make it true):
$flag = true;
//while we got some data, display that shit
while ($row = $result->fetch_assoc()) {
//asign data to variable:
$rowOrderID = $row['orderID'];
//Does it match? if it does set the flag to false so it doesnt get inserted.
if ($rowOrderID == $orderID) {
echo "Row ID" . $row["orderID"] . " Passed ID: " . $orderID . "<br>";
echo "This order is already in the database" . "<br>";
$flag = false;
}
}
//hand the flag over to who ever needs it
return flag;
}
.
if (checkOrderID($orderID) == true) {
//some mysql insert logic here
}
【问题讨论】:
-
id 是主键吗?或者是其他东西?如果是主要的,那么它不能再次插入
-
orderID 不是主键 @ShafiqulIslam
-
你能回显 $rowOrderID 吗?"=="。 $订单ID;死();然后检查两个值都有 echo gettype($orderID ).'
'; echo gettype($rowOrderID ).'
'; -
行 ID:4661188581,通过 ID:4661188581 @ShafiqulIslam
-
我现在得去上班了。我要么今晚晚点回来,要么明天中午之后回来。对不起!