Php 奇怪的MySQL语法错误:在一段代码中,该代码过去可以正常工作

Php 奇怪的MySQL语法错误:在一段代码中,该代码过去可以正常工作,php,mysql,sql,Php,Mysql,Sql,我在SQL中遇到了一个语法错误,我尝试了所有的方法,但是找不到代码的错误 $register_user = "INSERT INTO '".$this->users_table."' ( '".$this->username_collumn."', '".$this->email_collumn."','".$this->password_collumn."' ) VALUES ( '".$username."','".$email."','".$password."')

我在SQL中遇到了一个语法错误,我尝试了所有的方法,但是找不到代码的错误

$register_user = "INSERT INTO '".$this->users_table."' ( '".$this->username_collumn."', '".$this->email_collumn."','".$this->password_collumn."' ) VALUES ( '".$username."','".$email."','".$password."')";
所有的变量都是转义的,我也尝试过使用mysql\u real\u escape\u string函数,但没有任何帮助。这似乎是电子邮件造成的问题,因为在错误报告中,它并没有完全显示为@符号,但我不明白为什么

错误是:

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1行的“profiles”(“username”,“email”,“password”)值(“Corten”,“attrac”)附近使用的正确语法


我尝试用多种方法转义变量,但没有一种方法解决了错误。我如何解决这个问题?

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

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

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

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

如果你喜欢Fluffeh的答案,请接受!请在这里阅读更多内容:meta.stackoverflow.com/a/5235/195067