2015-07-02 34 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 –