2015-07-02 36 views
0

我已經通過Ajax插入的數據和數據插入,但給錯誤[錯誤:PHP MySQL數據類型插入錯誤通過Ajax

INSERT INTO jobify_user (u_name,u_phonenumber,u_email,u_password) VALUES 

('','','','') 

[1]Incorrect integer value: '' for column 'u_phonenumber' at row 1]

$sql = "INSERT INTO jobify_user (u_name,u_phonenumber,u_email,u_password) 

    VALUES ('$username','$userphonenumber','$useremail','$userpassword')"; 

    if ($conn->query($sql) === TRUE) { 

    echo "New record created successfully"; 

    } else { 

    echo "Error: " . $sql . "<br>" . $conn->error; 

    } 
+0

也許$ userphonenumber不是數字嗎?你有一個filter_var或is_numeric來檢查它只是數字嗎? – Djip

+0

您正在通過'$ userphonenumber'周圍的引號傳遞字符串 –

+0

您可以使用PDO準備的語句和參數 –

回答

0

('','','','')部分是你的值試圖插入數據庫。看到這四個都是空字符串,看起來變量$ username,$ userphonenumber,$ useremail和$ userpassword都是空的。

另外,''將值標記爲字符串,但收到的錯誤消息顯示u_phonenumber列的數據類型爲整數。你要麼改變你的語句來

$sql = "INSERT INTO jobify_user (u_name,u_phonenumber,u_email,u_password) 
VALUES ('$username',$userphonenumber,'$useremail','$userpassword')"; 

或離開該聲明相同,並在數據庫表改變u_phonenumber的數據類型爲VARCHAR。 (東西我看到有人輸入「電話號碼」字段包括:以+開頭的電話號碼,因爲它們包含國際前綴;區號和實際電話號碼之間的空格,連字符或斜槓;手機之間的連字符或空格數字和擴展名;幾個逗號和空格之間的電話號碼列表,所以我傾向於使u_phonenumber爲VARCHAR。)

+0

感謝VARCHAR爲我工作@anke –

1
$sql = "INSERT INTO jobify_user (u_name,u_phonenumber,u_email,u_password) 

    VALUES ('".$username."','".$userphonenumber."','".$useremail."','".$userpassword."')"; 

    if ($conn->query($sql) === TRUE) { 

    echo "New record created successfully"; 

    } else { 

    echo "Error: " . $sql . "<br>" . $conn->error; 

    } 
+0

感謝您的幫助@sam –