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

Pan*_*mma 0 php mysql insert

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

您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在''username','password'附近使用正确的语法.)VALUES('Pangamma','39ef1e6d2fb0743000e5956362b6dc55''在第1行

密码,电子邮件和用户都是正确的.数据库设置也是如此.我现在已经在墙上敲了3个小时.可能是一件非常简单的事情.我究竟做错了什么?

/** 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!';
        }
Run Code Online (Sandbox Code Playgroud)

Par*_*xit 5

单个quot(')仅用于值,而不用于选择列.

你可以使用backtik(`),如下所示

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

或者你可以没有任何东西放置它

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

对于第二个查询,您已将其用作limit列名.请不要使用它,因为它是SQL的关键字.所以它会给你语法错误.