2012-06-05 2 views
2

그래서 MySQL에 3 개의 열이있는 데이터베이스 설정이 있습니다. 첫 번째 열은 자동으로 사용자 ID 번호를 증가시키는 'idnum'입니다. 두 번째와 세 번째는 성과 이름입니다.자동 증가를 위해 PHP에서 NULL을 MySQL로 넘김

$sql = "insert into namesdb values('NULL', 'firstname', 'lastname')"; 
$result = $db->query($sql); 

: 내 PHP 파일에 쿼리 문자열을 통해 DB에 이름을 보낼 갈 때 내 문제는, 내가

내가 쿼리를 보낼 때 ... 다시 몇 가지 오류를 얻을 나는이 오류를 되 돌린다 : "부정확 한 정수 값 : 행 1에서 'idnum'열에 'NULL' 열 1은 INT 유형이므로

그러나 나는이 쿼리를 보낼 때 : 난 다시 구문 오류가

$sql = "insert into namesdb values(".NULL.", 'firstname', 'lastname')"; 
$result = $db->query($sql); 

... 내가 잘못 여기서 뭘하는지 도대체에

어떤 생각을?

도움 주셔서 감사합니다.

+0

단순히 idnum 값을 삽입하지 않으려 고합니다. 맞습니까? 그렇다면 Corbin의 대답 중 후반부를 살펴보십시오. – Vulcan

답변

4

그것은해야한다 :

$sql = "insert into namesdb values(NULL, 'firstname', 'lastname')"; 
$result = $db->query($sql); 

'NULL'"NULL"의 문자열입니다.

다른 옵션 (내가 함께 갈 것 하나) 명시 적으로 열을 나열이지만

:

INSERT INTO namesdb (firstname, lastname) VALUES ('firstname', 'lastname') 

더 미래의 증거이기 때문에 내가 열을 나열 선호하고는 무슨 일이 일어나고 있는지 쉽게 볼 수 있습니다. 나중에 열이 재 배열, 추가 또는 삭제 될 경우를 상상해보십시오. 갑자기 6 번째 이름이없는 매개 변수를 제거해야하는 경우 (예 :) 쿼리가 갑자기 수정 될 수 있습니다.

+0

아 ... 알 겠어. 정말 고맙습니다! –

+0

@MattWhitehead 문제 없음 :) – Corbin

+0

@MattWhitehead이 대답을 사용자가 수락 한 대답으로 표시해야합니다 (사용하기로 결정했다면 작동하는 것으로 가정). – Vulcan

0

그것은 자동으로 귀하의 ID 필드를 증가합니다

 insert into namesdb(firstname,lastname) values('firstname', 'lastname') 

처럼 그것의 더 나은 삽입 할 및 ID 필드를 지정 해달라고 필드 이름을 지정

+0

도움 주셔서 감사합니다. 고맙습니다. –

0

당신은 피하기 위해 이런 식으로 쿼리를 작성할 수 있습니다 그 문제 ..

$sql = "INSERT INTO table_name SET column_name_1 = 'value_1', column_name_2 = 'value_2'"; 
+0

조언 해 주셔서 감사합니다. –

0
$sql = "insert into namesdb values('NULL', 'firstname', 'lastname')"; 

위의 쿼리에서 'NULL'은 문자열 개체이고 열은 정수이므로 오류가 발생합니다. 최종 쿼리는 다음

"insert into namesdb values(, 'firstname', 'lastname')"; 

처럼 보이는 있도록

$sql = "insert into namesdb values(".NULL.", 'firstname', 'lastname')"; 

이 쿼리에서 당신은 그래서 유효하지 않습니다 PHP는 NULL 값을 보내고있다.삽입 할

올바른 방법이

$sql = "insert into namesdb values(NULL, 'firstname', 'lastname')"; 

처럼 또는 작동 쿼리 이상이

$sql = "insert into namesdb values('firstname', 'lastname')"; 

이유처럼 때문에 자동 증가입니다한다.

+0

호기심에서 PHP NULL과 MySQL NULL의 차이점은 무엇입니까? 다른 언어로 된 것이 아무것도 없습니다. 어쨌든, 도와 주셔서 감사합니다. –

+0

설명을 추가했습니다. 네,하지만이 경우에는 php가 sql 문자열을 파싱하고 mysql에 마지막으로 보내진 sql이 잘못되었습니다. – Josnidhin

+0

설명해 주셔서 감사합니다. –

관련 문제