试图找出以下代码产生此错误的原因.
您的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)
单个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的关键字.所以它会给你语法错误.