0

我在 SQL 中遇到语法错误,我尝试了所有方法,但找不到代码有什么问题。

$register_user = "INSERT INTO '".$this->users_table."' ( '".$this->username_collumn."', '".$this->email_collumn."','".$this->password_collumn."' ) VALUES ( '".$username."','".$email."','".$password."')";

所有变量都被转义,我也尝试使用 mysql_real_escape_string 函数,但它没有任何帮助。似乎电子邮件出了问题,因为在错误报告中它没有完全用@符号显示,但我不知道为什么。

错误是:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 ''profiles'('username'、'email'、'password')附近使用的正确语法 VALUES(第 1 行的 'Corten'、'attrac'

我尝试以多种方式转义变量,但都没有解决错误。我该如何解决这个问题?

4

2 回答 2

2

不要在列名或表名周围使用单引号,而是使用反引号:

$register_user = "INSERT INTO 
`".$this->users_table."` 
( `".$this->username_collumn."`, `".$this->email_collumn."`,`".$this->password_collumn."` ) 
VALUES ( '".$username."','".$email."','".$password."')";
于 2012-09-09T09:42:14.887 回答
0

尝试这个:

从表名和列中删除所有单引号

$register_user = "INSERT INTO ".$this->users_table." ( ".$this->username_collumn.", ".$this->email_collumn.",".$this->password_collumn.") VALUES ( '".$username."','".$email."','".$password."')";
于 2012-09-09T09:42:23.927 回答