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