$blanknumber = $_POST["blankstartnumber"];
while ($blanknumber <= ($_POST["blankendnumber"] ))
{
echo "$blanknumber";
$blankid = $blanknumber;
$query = "INSERT INTO blank (Blank_ID) VALUES ('$blankid')";
mysql_query($query,$con);
$blanknumber++;
}
因此将值添加到数据库中。让我们说如果我的起始编号为1并且结束于5.它将是所有这些值,但它仍然试图在数据库中添加更多。我也试过添加一个IF语句。 if ($blanknumber != $_POST["blankendnumber"])
12345错误:重复输入“5” 关键'PRIMARY'
答案 0 :(得分:3)
确保您的$ POST值是一个整数;默认情况下,我相信它会被转换为字符串。
$_POST['varName'] = (int) $_POST['varName'];
编辑:
$blanknumber = $_POST["blankstartnumber"];
while ($blanknumber <= ($_POST["blankendnumber"] ))
这应该只执行一次,因为你将两个比较变量设置为相等。绝对2倍检查您的代码。
答案 1 :(得分:1)
数据库错误表明Blank_ID
是该表的主键,并且您已经在行中插入了5
。主键的值只能在整个表中存在一次 - 禁止重复(如果允许重复,则不再是主键)。
如果你的while循环没有结束,我建议在循环开始之前抛出blankendnumber和blankstartnumber,确保你在那里得到正确的值。
答案 2 :(得分:0)
看起来它实际上运行正常,但在运行之前你可能没有整理你的数据库表。如果您的输出是:
123455 Error: Duplicate entry '5'...
然后,你有一个编程错误,因为5正在运行两次。相反,我认为您已经在空白表中有数据导致冲突。
编辑:要自动让MySQL正常处理重复键错误,可以使用ON DUPLICATE KEY子句来更新行。
INSERT INTO blank (Blank_ID) VALUES (5) ON DUPLICATE KEY UPDATE mod_date = NOW();