我想做一个注册表单,但sql查询只是不会工作..试图添加的内容和删除它们,添加(')标志插入的数据,并删除它们..没有任何作品!我不确定我的错误在哪里......有人可以帮忙吗?MySQL查询错误 - 隐藏错误?
PHP代码:
$mysqli = new mysqli('localhost','root','','wisdom') or die("CONNECTION ERROR");
$query = "INSERT INTO net_users VALUES (NULL,'$fname','$mname','$lname','$dob','$uname','$pasw','$phone1','$phone2','$email',NULL,NULL,NULL,'$date');";
if($mysqli->query($query)) echo "REGISTERED";
else echo "<br><br>FAILED: ".$mysqli->error;
ERROR:
FAILED: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '123456789,987654321,[email protected],NULL,NULL,NULL,14/12/04)' at line 1
数据($ _POST):
Array (
[fname] => A //$fname
[mname] => A //$mname
[lname] => A //$lname
[dob] => 2014-07-17 //$dob
[username] => bakriawad //$uname
[password] => horray //$passw
[cpassword] => horray
[email] => [email protected] //$email
[phone1] => 123456789 //$phone1
[phone2] => 987654321 //$phone2
[botchk] =>
[tos] => on)
// $日期=日期( “年/月/ d” );
我确保数据匹配行数据类型...我试着改变和重写代码多次...没有任何作品!它只是卡在那里!
--------------------------------------------- ------------------------------------------ \
EDIT 服务器被冻结(或什么..),重新启动后它接受输入..抱歉的麻烦..但工作6小时后,你很难直接思考...即使sql不断变化,错误永远不会改变,那是一个明确的标志。
** WARNING **:当使用'mysqli'你应该使用参数化查询,而['bind_param'(http://php.net/manual/en/mysqli-stmt.bind-param。 PHP)将用户数据添加到您的查询。 **不要**使用字符串插值来实现这一点,因为你会产生严重[SQL注入漏洞(http://bobby-tables.com/)。在你解决这个问题之前,这些代码都不会一直工作。 – tadman 2014-12-04 18:39:16
有趣的是,这也会解决他目前遇到的问题。 – 2014-12-05 04:25:59