我有一个问题,我只能将数据插入到我的表中一次。如果我删除行并插入一个新行,它可以工作,但是如果我已经有一个行并尝试插入另一个行,它不能工作。控制台或网络中没有错误。
我插入了以下内容:
<?php
error_reporting(E_ALL);
include 'DB.php';
$con = mysql_connect($host,$user,$pass)
or die("Error: ".mysql_error());
$dbs = mysql_select_db($databaseName, $con);
$name = mysql_real_escape_string($_POST['name']);
$date = date('Y-m-d');
$amount = $_POST['amount'];
$timPaid = $_POST['timPaid'];
$rennyPaid = $_POST['rennyPaid'];
$sql = "INSERT INTO $tableName (`name`, `date`, `amount`, `timpaid`, `rennypaid`)
VALUES ('$name', '$date', '$amount', '$timPaid', '$rennyPaid')";
$result = mysql_query($sql, $con)
or die("Error: ".mysql_error());
mysql_close($con);
?>
我在想,这可能与我的表的设置方式、主键等有关。我有一个id列,它是主要的,我认为它是自动递增的,不能说。
发布于 2013-05-03 05:53:17
由于您不确定id
字段是否是自动递增的,因此您应该像这样修改表。
ALTER TABLE `yourtable`
MODIFY COLUMN `id` int(11) NULL AUTO_INCREMENT FIRST;
发布于 2013-05-03 07:03:57
SHOW CREATE TABLE tableName
的结果会有所帮助。
我猜想你在你的字段中有一个唯一的索引,并且你正在尝试插入第二条具有相同值的记录。
此外,CHECK TABLE tablename
还可以帮助识别问题。
发布于 2015-01-10 00:46:15
我有这个..。我已经将我的第一个列设置为“唯一”,并且我的“插入”没有涉及该列。因此,“Insert”在“唯一”列中添加了一个零值(我将该列设置为“整数”)。当我做另一个insert时,“我认为”Insert“想要在”unique“列中添加另一个零,所以它试图”插入“另一个零,但因为该列是”unique“,所以它不允许另一个零,并拒绝”Insert“。我证明了这一点,将“唯一”列中的第一个“Insert”条目手动更改为另一个“Integer”,然后“Insert;语句再次工作……重复上述过程,我的表允许另一个”Insert“。
希望这是有意义的和有帮助的?
https://stackoverflow.com/questions/16352136
复制相似问题