使用MySQL将数据插入我的数据库时出错

时间:2013-02-07 04:50:46

标签: php mysql

我正在编写一个脚本,用于在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()函数中没有反引号 - 它们都没有工作。

有什么想法吗?

2 个答案:

答案 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