创建一个php用户注册页面,得到一个SQL错误

时间:2014-09-15 21:39:05

标签: php mysql

我正在注册页面。可以通过btcbidder.com/register

访问它

目前,当我尝试注册帐户时,我收到错误:

  

错误号码:1064

     

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近' @ gmail.com,   87e1bdad537ee992ee550a9b8f555530e5ad41a5ce4848ed67dea21c63f633ee3940'   在第1行

     

INSERT到tbl_user VALUES(NULL,lmfsthefounder,   lmfsthefounder@gmail.com,   87e1bdad537ee992ee550a9b8f555530e5ad41a5ce4848ed67dea21c63f633ee3940149e852ff69e6555f817485e641e17edb0c0bf51296a276206cab0cd88ef,   658b851a9655567ca,NULL,NULL);

     

文件名:   /home/content/61/11420661/html/btcbidder.com/controllers/register.php

     

行号:53

我正在使用的代码(在表单之外)是:

if (isset($_POST['username'])){

            $username = $_POST['username'];
            $email = $_POST['email'];
            $salt = generate_salt();
            $pwhash = hash_password($salt . $_POST['password']);

            //$q = sprintf('INSERT into tbl_user (username, email, pwhash, salt) VALUES ();');

                if ($this->db->query("INSERT into tbl_user VALUES (NULL, $username, $email, $pwhash, $salt, NULL, NULL);")){
                    echo "<h3> Registration successful</h3><br><br>
                    <p><a href='".site_url()."login'>Click here to log in </a></p>";
                }
            }

只是看,我尝试使用mysql浏览器将其添加到数据库,但正如预期的那样,它也失败了。

如果有帮助,请按下表:

'user_pk', 'int(10) unsigned', 'NO', 'PRI', '', 'auto_increment'
'username', 'varchar(16)', 'NO', 'UNI', '', ''
'email', 'varchar(254)', 'NO', 'UNI', '', ''
'pwhash', 'varchar(256)', 'NO', '', '', ''
'salt', 'varchar(32)', 'NO', '', '', ''
'wallet', 'varchar(64)', 'NO', 'UNI', '', ''
'usertype', 'varchar(10)', 'YES', '', '', ''

电子邮件字段有问题吗?似乎错误显示在@symbol上,是不是允许的字符?

1 个答案:

答案 0 :(得分:0)

我认为问题在于您的插入值。您应该插入用户名,电子邮件,pwhash,salt,wallet和usertype作为STRING,我的意思是,用引号括起来。

相关问题