1

我有一个问题,我只能将数据插入表中一次。如果我删除该行并插入一个新行,它可以工作,但如果我已经有一行并尝试插入另一行,它就行不通。控制台或网络中没有错误。

我插入这个:

<?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 列,它是主要的,我认为它是自动增量的,无法分辨。

4

4 回答 4

0

由于您不确定该id字段是否是自动递增的,因此您应该像这样更改您的表格,

ALTER TABLE `yourtable`
MODIFY COLUMN `id`  int(11) NULL AUTO_INCREMENT FIRST;
于 2013-05-03T05:53:16.913 回答
0

我有这个......我将我的第一列设置为“唯一”,而我的“插入”不涉及该列。结果,“插入”在“唯一”列中添加了一个零值(我将该列设置为“整数”)。当我再次插入“我认为”时,“插入”想在“唯一”列中添加另一个零,而我没有“插入”,所以它试图“插入”另一个零,但是因为该列是“唯一”它不允许另一个零并拒绝“插入”。我通过手动将“唯一”列中的第一个“插入”条目更改为另一个“整数”然后是“插入”来证明这一点;语句又工作了一次....重复上述过程,我的表允许另一个“插入”。

希望这有意义并有所帮助?

于 2015-01-10T00:46:15.293 回答
0

FROM 的结果SHOW CREATE TABLE tableName会有所帮助。

我猜您的字段上有一个唯一索引,并且您正在尝试插入具有相同值的第二条记录。

CHECK TABLE tablename可以帮助识别问题。

于 2013-05-03T07:03:56.603 回答
0

我有一个类似的问题,但是我在我的创建表脚本中使用 INT 数据类型来存储一个 13 位长数字,它只想接受 10 位大小的东西。将其更改为 VARCHAR(13) 为我解决了这个问题。

于 2017-10-31T15:14:43.207 回答