2013-05-03 6 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 열이 있는데 자동 증가라고 생각하지 않습니다. 당신이 id 필드가 자동 증가 여부,이 같은 테이블을 변경해야 확실하지 않은 때문에

+0

어떤 오류가 발생하고 있습니까? –

+0

오류가 발생하지 않습니다 :( –

+3

테이블 설정 방법에 문제가 있다고 생각되면 테이블 정의를 게시하십시오. 또한 다른 질문에 대한 내 대답을보십시오. 오류가 발생하지만 AJAX 요청으로 게시 중이므로 서버 측 로그에서 오류를 찾거나 개발자 콘솔 (chrome)에서 요청 결과를 확인해야합니다 –

답변

0

, SHOW CREATE TABLE tableName의 결과가 도움이 될

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

이것을 실행했을 때 : # 1068 - 여러 개의 기본 키가 정의되었지만 실제로 여러 개의 기본 키 (알고있는 것)가 없습니다 –

+0

@ TimothyOwen 코드를 편집했습니다. – 6339

+0

이 고치고 고칩니다. 감사합니다! –

0

.

필자는 필드에 고유 한 색인이 있고 같은 값의 두 번째 레코드를 삽입하려고합니다.

CHECK TABLE tablename도 문제 식별에 도움이 될 수 있습니다.

0

나는 이것을 가지고 있었다 ... 나는 나의 유일한 열을 'unique'로 설정했고 나의 'Insert'는 그 열을 포함하지 않았다. 결과적으로 '삽입'은 '고유'열에 0 값을 추가했습니다 (이 열을 '정수'로 설정했습니다). 'Insert'가 'Unique'열에 'Insert'가 아닌 다른 0을 추가하려고했기 때문에 다른 열을 'Insert'하려고했으나 그 열 '유일하다'는 것은 또 다른 0을 허용하지 않고 '삽입'을 거부했다. 첫 번째 'Inserts'항목을 'Unique'열로 수동 변경하여 'Integer'다음에 'Insert; 성명은 한 번 더 일했다 .... 위에서 설명한 과정을 반복하고 나의 테이블은 다른 '삽입'을 허용했다.

희망적이라고 생각 되니 도움이 되셨습니까?

0

필자도 비슷한 문제가 있었지만, 13 자리 긴 번호를 저장하기 위해 테이블 ​​작성 스크립트에서 INT 데이터 형식을 사용하는 곳이 내 것이었고 10 자리 숫자 만 허용하려고했습니다. 이것을 VARCHAR (13)로 변경하면 나를 위해 문제가 해결되었습니다.

관련 문제