<?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