0

我在这里使用 Tutis 登录脚本。

在该register()函数中,我只是希望能够在创建新用户时为保存在数据库中的数据再添加一个值。该脚本使用具有users一定数量列的数据库表,我还需要一列,type,我已将其添加到数据库中的表中。

问题是我不知道为什么这段代码不起作用:

$database->query('INSERT INTO users(username, password, email, date, type) 
VALUES (:username, :password, :email, :date, :type)', 
array(':username' => $username, 
'password' => $password, 
'email' => $email, 
'date' => $date, 
'type' => 'staff' // this is the line I added, just ensuring the user is 'staff'
));

原始代码完全相同,没有'type'=> 'staff'行。运行此命令时,当我检查时,其余值仍会正确保存在数据库中,但该type列仍为空。尝试注册用户时出现以下错误:

Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in... line database.class.php 71.

在警告之后,我检查了,但在database.class.php文件的第 71 行,这就是全部内容:

/* Execute Query & check for any errors */
if(!$this->statement->execute()){ //this is line 71
    $result = array(
        1 => 'false',
        2 => '<b>[DATABASE] Error - Query:</b> There was an error in sql syntax',
    );
    return $result;

我是 PDO 的新手,我也可以查看教程(并且有),但我无法简单地弄清楚这一点。有什么问题,有人有什么想法吗?如果您熟悉 PDO,您会寻找什么?

4

0 回答 0