php用户注册表单问题

时间:2011-05-16 08:24:59

标签: php

 <?php 
 $yourname=$_POST["yourname"]; 
 $email=$_POST["email"]; 
 $password=$_POST["password"]; 

 $country=$_POST["country"]; 

 include('includes/config.php');

 $result = mysql_query("
 INSERT INTO `ban`.`users` 
 (`userid`, 
 `email`, `password`, `yourname`, `country`)
  VALUES (NULL, '$email', '$password', '$yourname', '$country'")
   or die (mysql_error());
    ?> 

这是用户在注册表单中按下提交按钮后的页面。 我想从表单变量插入数据。它有什么问题?

这是我得到的错误:--- 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第4行的''附近使用正确的语法

5 个答案:

答案 0 :(得分:3)

你没有结束括号。

  

VALUES(NULL,'$ email','$ password',   '$ yourname','$ country'“)

答案 1 :(得分:2)

我认为它崩溃是因为'$country'之后缺少“)”。

 $result = mysql_query("
 INSERT INTO `ban`.`users` 
 (`userid`, 
 `email`, `password`, `yourname`, `country`)
  VALUES (NULL, '$email', '$password', '$yourname', '$country')")
   or die (mysql_error());
    ?> 

答案 2 :(得分:2)

作为一般规则,我总是在第一次使用它时打印出我的查询,以确保在出现问题时它们不是问题。

$query = "INSERT INTO `ban`.`users` 
 (`userid`, `email`, `password`, `yourname`, `country`)
  VALUES (NULL, '{$email}', '{$password}', '{$yourname}', '{$country}')";
echo $query;
$result = mysql_query($query) or die (mysql_error());

然后你选择那个echo的输出并在你选择的mysql客户端(phpmyadmin,sequel pro等等)中尝试它。这样你就可以快速查看最终错误,如果你自己不能发现它们。

在这种情况下,问题是查询结尾处缺少“)” 但是你还必须以某种方式清理你正在插入的值,直接从用户数据执行sql查询是非常非常危险的(更不用说你必须用addslashes()删除单引号“'”。

答案 3 :(得分:0)

删除userid,并从sql插入NULL。 也可以使用“{$ password}”代替“$ password”&amp;为了其他人。

答案 4 :(得分:0)

你的SQL到处都是。查找如何形成正确的SQL语句:http://www.w3schools.com/sql/sql_syntax.asp