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

时间:2013-09-10 05:20:54

标签: php mysql insert

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

  

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在“用户名”,“密码”附近使用正确的语法。)VALUES(第1行''Pangamma','39ef1e6d2fb0743000e5956362b6dc55'

密码,电子邮件和用户都是正确的。数据库设置也是如此。我现在已经在墙上敲了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!';
        }

4 个答案:

答案 0 :(得分:5)

单引号(')仅用于值,而不用于选择列。

您可以使用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的关键字。所以它会给你语法错误。

答案 1 :(得分:3)

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

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

应该是

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

答案 2 :(得分:2)

将您的第一个mysql_query语句更改为:

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

答案 3 :(得分:2)

更改此行

mysql_query(“INSERT INTO $db_database$tb_logins('username','password')VALUES('$ user','$ hash')”)或die(mysql_error());

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