我正在编写一个脚本,用于在PHP中将用户添加到数据库中。在添加任何花哨的内容之前,我想先了解基础知识。请注意我是PHP的新手,我知道我不应该使用mysql_query而且我应该使用PDO,但我想确保我有一些可以依赖的东西。
我得到的错误是:你的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第6行的''附近使用正确的语法
我的查询如下:
$query = "INSERT INTO users(`username`,`password`,`email`,`regdate`,`isadmin`) VALUES(
`" . mysql_real_escape_string($data['fusername']) . "`,
`" . md5(sha1($data['fpass'])) . "`,
`" . mysql_real_escape_string($data['femail']) ."`,
`NOW()`,
`1`";
(请原谅密码哈希,我稍后会加盐)
我正在执行它:
$sql = mysql_query($query);
if(!$sql)
{
die("Account was unsuccessfully created: " . mysql_error());
}
我尝试将$ sql添加到die()中,但它似乎返回空白。
我尝试删除反引号,用单引号替换它们,在users()函数中没有反引号 - 它们都没有工作。
有什么想法吗?
答案 0 :(得分:0)
应该是这样的。希望它会对你有所帮助。
$query = "INSERT INTO users(username,password,email,regdate,isadmin) VALUES(
'".mysql_real_escape_string($data['fusername'])."',
'".md5(sha1($data['fpass']))."',
'".mysql_real_escape_string($data['femail'])."',
'NOW()',
'1'";
答案 1 :(得分:0)
无需在值中包含块引号。每当出现错误时,请检查您的查询两次或三次。你可以试试这个,
$query = "INSERT INTO users(`username`,`password`,`email`,`regdate`,`isadmin`)
VALUES('". mysql_real_escape_string($data['fusername']) . "', '" . md5(sha1($data['fpass'])) . "', '" . mysql_real_escape_string($data['femail']) ."', NOW(), '1')";
注意:不推荐使用mysql_real_escape_string函数。 http://php.net/manual/en/function.mysql-real-escape-string.php