-2

我正在编写一个脚本以将用户添加到 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() 函数中没有反引号 - 它们都不起作用。

有任何想法吗?

4

2 回答 2

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'";
于 2013-02-07T04:54:01.937 回答
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

于 2013-02-07T04:54:37.340 回答