只能插入mysql表一次

时间:2013-05-03 05:22:56

标签: php mysql

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

我正在插入:

<?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 个答案:

答案 0 :(得分:0)

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

ALTER TABLE `yourtable`
MODIFY COLUMN `id`  int(11) NULL AUTO_INCREMENT FIRST;

答案 1 :(得分:0)

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

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

CHECK TABLE tablename也有助于确定问题。

答案 2 :(得分:0)

我有这个...我把我的第一个专栏设置为&#39; unique&#39;和我的&#39;插入&#39;没有涉及该专栏。 因此,&#39; Insert&#39;在“唯一”中添加了零值。列(我将该列设置为&#39;整数&#39;)。 当我做了另一个插入时,我认为&#39;那个&#39;插入&#39;想在“独特”中添加另一个零点。专栏,我没有&#39;插入&#39;进入,所以它试图插入&#39;另一个零,但因为该列是独一无二的&#39;它不会允许另一个零并拒绝插入&#39;。 我通过改变第一个&#39; Inserts&#39;来证明这一点。进入&#39; Unique&#39;列手动到另一个&#39;整数&#39;那么&#39;插入;声明再次工作....如上所述重复上述过程,我的表格允许另一个&#39;插入&#39;。

希望这有道理并有所帮助?

答案 3 :(得分:0)

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