【发布时间】:2018-07-08 14:17:21
【问题描述】:
我正在尝试使用 for 循环作为发送多个数据的方法,但是,我要循环的数字不是我要发送的数字。例如,当我分配 10001 - 10005 时,它只存储在数据 10001 - 10002 中。每次无论我分配多少不同的数量,它都只存储 2 个数据,这是我要分配的范围中的前 2 个数字,而不是我需要的数量。我相信是我循环的方法出错了。请帮忙。
@processallocate.php
查看为文本
<?php
for ($cardfrom = $cardfrom; $cardfrom <= $cardto; $cardfrom++) {
if ($cardfrom) {
$mysqli = new mysqli(spf, dbuser, dbpw, db);
$stmt = $mysqli->prepare("INSERT INTO allocation
(cardfrom)
VALUES (?)");
$stmt->bind_param("s", $cardfrom);
$result = $stmt->execute();
if ($result == true && $stmt->affected_rows > 0) {
echo "<b>" . $check . "</b><br />";
}
else {
echo '<p>Taxi Voucher has already been allocated</p>';
break;
}
$stmt->close();
$mysqli->close();
}
else {
echo '<p>Error</p>';
echo '<p>Please <a href="allocation.php">Click Here</a> to resubmit</p>';
}
}
?>
【问题讨论】:
-
您能解释一下您的代码并仅列出问题所在吗?有了所有这些代码并且没有太多解释,这很困难。此外,您的代码使用的是 MySQL,因此难以重现。
-
@AnthonyB 您好,我已经编辑过,并简要说明出了什么问题,如果您仍然不明白,请告诉我
-
如果你
var_dump($cardfrom);和var_dump($cardto);会发生什么? -
旁注:不需要多次连接和准备。看到这个answer。
-
@WOUNDEDStevenJones 我将为 $cardfrom 获得 1001,而 $cardto 将是 1005,我相信我成功引入了 cardfrom 和 cardto,它只是循环一次,即 1001 和 1002,但是不是 1003、1004、1005