2016-12-30 33 views
0
$name = mysqli_real_escape_string($connection, $_POST["name"]); 
    $surname = mysqli_real_escape_string($connection, $_POST["surname"]); 
    $username = mysqli_real_escape_string($connection, $_POST["username"]); 
    $email = mysqli_real_escape_string($connection, $_POST["email"]); 
    $pw1 = mysqli_real_escape_string($connection, $_POST["pw1"]); 

    $query = "INSERT INTO 'users' ('id','name', 'surname', 'username', 'email', 'password') VALUES (NULL,'$name', '$surname', '$username', '$email', '$pw1')"; 

    $result = mysqli_query($connection, $query); 
    if(!$result){ 
     echo ("fail"); 
    } 

我测试,如果查询使用工作进行查询,如果($结果!){回声(“失败”);}和它呼应失败每次和没有数据被插入到数据库中每一个时间!我检查了语法,我相信它是正确的......这可能是因为数据库“整理”?无法使用mysqli_query

+0

打印查询并在mysql控制台中手动运行 – e4c5

+0

@ e4c5我已复制并粘贴'INSERT INTO'users'('id','name','surname','username','email', 'password')VALUES(NULL,'$ name','$ surname','$ username','$ email','$ pw1')'到控制台,它说我有不正确的语法 – asker

+0

生成的SQL! – e4c5

回答

2

您不应使用tablefield名称的单引号。您必须使用位于Esc键或1键左侧或Tab键上侧的Backtick(如``)。它应该是这样的:

$query = "INSERT INTO `users` (`id`, `name`, `surname`, `username`, `email`, 
`password`) VALUES ('null', '$name', '$surname', '$username', '$email', '$pw1')"; 

$query = "INSERT INTO users (id, name, surname, username, email, 
password) VALUES ('null', '$name', '$surname', '$username', '$email', '$pw1')"; 

注:如果id场已设置自动递增,那么你可以删除id和价值null。因为id值会自动增加。

希望它会有帮助。

+0

谢谢!反引号和单引号太相似了! – asker

+0

欢迎和高兴地知道我的答案是有帮助的。 –