由于语法不正确,INSERT INTO php mysql语句无法工作。

由于语法不正确,INSERT INTO php mysql语句无法工作。,php,mysql,insert,Php,Mysql,Insert,试图找出以下代码产生此错误的原因 您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“用户名”、“密码”值(“Pangamma”、“39EF1E6D2FB074300E5956362B6DC55”)附近使用的正确语法 密码、电子邮件和用户都是正确的。数据库设置也是正确的。我已经在墙上敲了三个小时的头。可能是一些愚蠢的简单事情。我做错了什么 /** returns a reason if it fails **/ function addUser($u

试图找出以下代码产生此错误的原因


您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“用户名”、“密码”值(“Pangamma”、“39EF1E6D2FB074300E5956362B6DC55”)附近使用的正确语法

密码、电子邮件和用户都是正确的。数据库设置也是正确的。我已经在墙上敲了三个小时的头。可能是一些愚蠢的简单事情。我做错了什么

/** returns a reason if it fails **/
        function addUser($user,$password,$email){
            global $db_database;global $tb_logins;global $tb_info; global $tb_licenses;
            $licensekey = md5($user.$password.$email);
            $hash = md5($user.'please'.$password.'the salt');
            if (mysql_num_rows(mysql_query("SELECT * FROM ".$tb_logins." WHERE username='$user'")) > 0){
                return 'error : username already in use.';
            }
            mysql_query("INSERT INTO `$db_database`.`$tb_logins` ( 'username' , 'password' ) VALUES ('$user', '$hash')") or die(mysql_error());
            mysql_query("INSERT INTO $tb_info (`username`,`email`,`licensekey`,`limit`) VALUES ('".$user."','".$email."','".$licensekey."','0')") or die(mysql_error());
            return 'success!';
        }
单引号(
)仅用于值,不用于选择列

您可以像下面这样使用backtik(
`

mysql_query("INSERT INTO `$db_database`.`$tb_logins` (`username` ,`password`) VALUES ('$user', '$hash')") or die(mysql_error());
或者你可以把它放在没有任何东西的地方

mysql_query("INSERT INTO `$db_database`.`$tb_logins` (username ,password) VALUES ('$user', '$hash')") or die(mysql_error());

对于第二个查询,您使用了
limit
作为列名。请不要使用它,因为它是SQL的关键字。因此它会给您带来语法错误。

您必须在列名周围使用反勾号,而不是单引号

INSERT INTO `$db_database`.`$tb_logins` ( 'username' , 'password' )
应该是

INSERT INTO `$db_database`.`$tb_logins` ( `username` , `password` )

将第一条mysql\u查询语句更改为:

mysql_query("INSERT INTO '$db_database'.'$tb_logins' ( username , password ) VALUES ('$user', '$hash')") or die(mysql_error());
换行

mysql_查询(“插入
$db_数据库
$tb_登录名
('username','password')值('$user','$hash'))或死亡(mysql_error())


有一件事
返回“success!”;
不会回显任何内容。使用
回显“success!”;
死亡(“success!”);
退出(“success!”);
这似乎有效。我将在三分钟内接受你的答案(允许的最短时间)。现在这一行给我带来了麻烦。我应用了你建议的修复程序,所以第二个也应该可以。它不是。mysql\u查询(“插入
$db\u数据库
$tb\u登录名
(用户名、密码)值(“$user',“$hash'))或死亡(mysql\u错误();您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解使用接近“limit”值(“Pangamma2”和“planetman”的正确语法。hack@gmail.com“,”第1行的“e9e02ef638ddc9db6bec0dbee”请提供查询。是否与问题中的相同?查询为mysql\U查询(“在
$db_数据库中插入('user'、'email'、'licensekey'、'0'))值('mysql_error()))或die(mysql_error())”;
    mysql_query("INSERT INTO `$db_database`.`$tb_logins` ( `username` , `password` ) VALUES ('$user', '$hash')") or die(mysql_error());