2015-04-05 143 views
0

我的代碼:ERROR 1366(HY000):不正確的整數值: '' 列 'ID' 在第1行

$sql = "INSERT INTO ". static::$table_name ." ("; 
$sql .= join(", ", array_keys($attributes)); 
$sql .= ") VALUES ('"; 
$sql .= join("', '", array_values($attributes)); 
$sql .= "')"; 

輸出:

echo $sql; 
//INSERT INTO users (id, username, password, first_name, last_name) 
VALUES ('', 'lukeduke', '123456', 'Luke', 'Duke') 

當我運行此查詢,我得到:

ERROR 1366(HY000):不正確的整數值: '' 列 'ID' 在第1行

+4

你看了錯誤信息? – Rizier123 2015-04-05 22:28:50

+0

'INSERT INTO users(username,password,first_name,last_name) VALUES('lukeduke','123456','Luke','Duke')'只要你的id是一個自動增量就可以。 – 2015-04-05 22:33:03

+1

空字符串不是整數... – 2015-04-05 22:33:05

回答

3

如果你想使用這個插入,你必須提供你的SQL,而不是一個空字符串的整數值,它應該是這樣的:

INSERT INTO users (id, username, password, first_name, last_name) 
VALUES (1, 'lukeduke', '123456', 'Luke', 'Duke') 

,或者如果你的ID是自動增加的,你可以有你這樣的SQL:

INSERT INTO users (username, password, first_name, last_name) 
VALUES ('lukeduke', '123456', 'Luke', 'Duke') 

在這種情況下,這應該是你的代碼:

//extracting your first element of the array (id in this case) 
$attributes = array_slice($attributes, 1); 

$sql = "INSERT INTO ". static::$table_name ." ("; 
$sql .= join(", ", array_keys($attributes)); 
$sql .= ") VALUES ('"; 
$sql .= join("', '", array_values($attributes)); 
$sql .= "')"; 

更多詳情:

0

什麼是你的id列類型?

,如果它是整數,自動增量,通過null價值,它

+2

*您的id列的類型是什麼?*使用註釋進行澄清;不要在你的回答中做猜測工作 – Rizier123 2015-04-05 22:40:19

+1

@ Rizier123那麼爲什麼不能倒下呢? (當然,但有助於向下移動可憐的答案,或者走了......) – James 2015-04-05 22:48:20

相關問題