2014-12-04 2 views
-1

열 필드에 Null 또는 정수 값 중 하나를 삽입해야합니다. 하지만 null 값 즉MySQL이 행 1의 열에 대해 잘못된 정수 값을 삽입합니다.

-- Create table 
$sqlquery="CREATE TABLE numberone(uno_ID int NOT NULL AUTO_INCREMENT, 
unoone VARCHAR(50) NOT NULL, 
unotwo VARCHAR(50) NOT NULL, 
unothree MEDIUMINT(8) UNSIGNED, 
unofour VARCHAR(10) NOT NULL, 
unofive VARCHAR(20) NOT NULL, 
PRIMARY KEY(uno_ID))"; 

$sqlquery="INSERT INTO numberone(unoone, unotwo, unothree, unofour, unofive) 
VALUES ('$one', '$two', '$three', '$four', '$five')"; 
+0

NULL 값을 삽입하는 방법을 자세히 설명해 주시겠습니까? –

답변

1
$three = $three ? "'$three'" : "NULL"; 
$sqlquery="INSERT INTO numberone(unoone, unotwo, unothree, unofour, unofive) 
VALUES ('$one', '$two', $three, '$four', '$five')"; 


만 정수 값의 삽입은, 값이 인용 또는 NULL되어 하나 때문에 최종 쿼리에서 따옴표를 이동합니다. 사실 정수이기 때문에 따옴표가 필요하지 않지만보다 일반적인 대답을 원한다고 생각했습니다.

+0

감사합니다. 마이크! 오류 : 올바르지 않은 정수 값 : '1'열의 'unothree'에 대해 'NULL'입니다. – Marc

+0

값 문자열에 따옴표를 남겨 두었으므로 NULL 대신 'NULL'을 추가하려고했습니다. – Mike

+0

감사합니다. 그것은 작동하지만 레코드의 중복 삽입이 있습니다. 중복 레코드에서 모든 필드는 NULL을 나타내는 아무 것도 저장하지 않고 비어 있습니다. 또한 이것과 관련이있는 경우 // 보안 용 변수를 이스케이프 처리합니다. $ three = mysqli_real_escape_string ($ con, $ _POST [ 'three']); $ four = mysqli_real_escape_string ($ con, $ _POST [ 'four']); $ five = mysqli_real_escape_string ($ con, $ _POST [ 'five']); – Marc

관련 문제