PHP 用户注册表单问题


php user registration form problem

 <?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行"附近使用的正确语法

您没有右括号。

值(空、$email、$password、 "$yourname"、"$country")

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

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

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

$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());

然后,您选择该回声的输出并在您选择的mysql客户端(phpmyadmin,sequel pro等)中尝试它,这样如果您自己无法发现最终的错误,则可以快速查看最终的错误。

在这种情况下,问题是查询末尾缺少 ")"。
但是你也必须以某种方式清理你插入的值,直接从用户数据进行sql查询是非常非常非常危险的(更不用说你必须用addslashes()去掉单引号"'"了)。

删除userid ,并从 sql 插入 NULL 。也使用"{$password}"的"$password"和其他人。

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