2013-05-03 88 views
1

我有一個問題,我只能將數據插入到我的表中一次。如果我刪除行並插入一個新的,它可以工作,但如果我已經有一行並嘗試插入另一個,它不起作用。控制檯或網絡中沒有錯誤。只能插入到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列,這是主要的,我認爲它是自動增量,不能說。

+0

你有什麼錯誤? – 2013-05-03 05:25:11

+0

我沒有得到任何錯誤:( – 2013-05-03 05:25:46

+3

如果你認爲這是一個問題,你的桌子是如何設置的,請張貼表格定義 另外,請看看我的回答你的其他問題。一個錯誤,但是因爲你發佈了AJAX請求,你必須在服務器端日誌中找到錯誤,或者查看開發者控制檯中的請求結果(chrome) – 2013-05-03 05:26:38

回答

0

既然你不知道的id字段是否是自動增量或沒有,你應該改變你的表像這樣,

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

當我運行這個時,我得到了:#1068 - 定義了多個主鍵,但實際上我沒有多個主鍵(我知道的) – 2013-05-03 06:04:28

+0

@ TimothyOwen我編輯了代碼 – 6339 2013-05-03 06:09:32

+0

工作並修復了,謝謝! – 2013-05-03 06:14:18

0

結果FROM SHOW CREATE TABLE tableName會有所幫助。

我想你有你的領域的唯一索引,你試圖插入第二個記錄具有相同的值。

另外CHECK TABLE tablename可以幫助識別問題。

0

我有這個......我把我的第一列設置爲「唯一」,我的「插入」沒有涉及該列。 因此'插入'在'Unique'列中添加了一個零值(我將該列設置爲'integer')。 當我做了另一個插入'我認爲''插入'想在'我'不是'插入'的'唯一'列中添加另一個零時,所以它試圖'插入'另一個零,但是因爲該列是'獨一無二的',它不會允許另一個零並拒絕'插入'。 我通過手動將第一個'插入'條目手動更改爲另一個'整數',然後將'插入;聲明再工作一次....重複上述過程,我的表格允許另一個'插入'。

希望這是有道理的,並幫助?

0

我有一個類似的問題,但是我的地方是我的創建表腳本中使用INT數據類型來存儲一個13位長的數字,它只想接受10位數的大小。將其更改爲VARCHAR(13)解決了我的問題。