我的插入行有错误,这是关于这个坏男孩的
mysql_query("INSERT INTO accounts('username', 'password', 'firstname', 'lastname', 'email')
VALUES($username, $password, $firstname, $lastname, $email)")
or die("Could not create account! <br/>" . mysql_error());
我提供的错误如下:
无法创建帐户!
您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在''username','password','firstname','lastname','email'附近使用正确的语法。)VALUES(test,test,'在第1行
我怀疑它与未被正确调用的变量有关?
答案 0 :(得分:5)
有各种各样的问题,所以我会总结一下:
INSERT INTO t1 ('col'
- 请注意,'col'
包含在引号中。这意味着它尝试插入字符串文字“col1”而不是列名。删除引号并用反引号(或什么都没有)替换它们VALUES(test
- 这在语义上意味着插入列“test”的值,这是没有意义的。你实际上需要用引号括起来。答案 1 :(得分:1)
您不必在查询中使用引号'
,而是反复添加“
mysql_query("INSERT INTO `accounts` (`username`, `password`, `firstname`, `lastname`, `email`) VALUES('".$username."', '".$password."','". $firstname."', '".$lastname."', '".$email."')") or die("Could not create account! " . mysql_error())
答案 2 :(得分:0)
我的朋友不应该引用查询中的字段。试试这个:
mysql_query("INSERT INTO accounts (username, password, firstname, lastname, email) VALUES($username, $password, $firstname, $lastname, $email)") or die("Could not create account!" . mysql_error());
祝你好运
答案 3 :(得分:0)
但是要回答你的问题,我相信这是因为你的专栏名称是单引号(而不是反引号)。
您的值需要在单引号内。您可能也想在这些变量上运行mysql_real_escape_string,以防止SQL注入。或者只是使用PDO预处理语句。 http://php.net/manual/en/pdo.prepared-statements.php