php - 这里出了什么问题-MySQLi 和自定义类

标签 php mysql database mysqli

我正在创建一个继承自 DBManager 类的自定义用户管理类。到目前为止,我遇到的问题是使用 mysqli 准备好的语句执行查询。数据库连接正常,但准备语句失败。我将 mysqli 对象作为在类中共享的属性。我是这个 mysqli 的新手(我一直使用普通的 mysql)。下面是失败的构造函数和 insertusers 方法。 感谢您的帮助,我已经搜索了这么久,如果有这样的地方,请原谅我。我找不到它。 再次感谢

<?php

protected  $dbLink;
protected  $errorMsg = array();//Inherited by other functions

public function __construct() {
$this->dbLink = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if (mysqli_connect_errno()) {
    $this->addError(mysqli_connect_error());
}
}

public  function insertUsers($arrayofValues) {
        //for inserting users in the database
        $sql = "INSERT INTO users(firstname, lastname, email, username, password) VALUES(?, ?, ?, ?, ?";
        if( $stmt = $this->dbLink->prepare($sql)) {
            $type = array("sssss");
            $params = array_merge($type, $arrayofValues);
            call_user_func_array(array($stmt, 'bind_param'), $this->refValues($params));
            $stmt->execute();

            if($stmt==-1) {
                //query failed
                $this->addError(mysqli_connect_error());
                return false;
            }else {
                return true;
            }
        }
        else{
            $this->addError("Something went wrong before InsertUsers stmt could execute well");
        }
    }
?>

最佳答案

关闭 INSERT 中的括号:

INSERT INTO users(firstname, lastname, email, username, password) VALUES(?, ?, ?, ?, ?)
                                                                                      ^

它通常有助于将准确的错误描述添加到代码中:

        $this->addError("InsertUsers failed: " . $this->dblink->error);

关于php - 这里出了什么问题-MySQLi 和自定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5791027/

相关文章:

javascript - CakePHP - 在 ajax 调用中处理 url

MYSQL更新查询去除空格

mysql - sql select 中的一列返回多个值

PHPExcel 意外的 float 行为

PHP MCRYPT 不断抛出 Module initialization failed Warning

mysql - 处理 myslqdump 文件,仅选择必要的数据库

MySQL 内部连接失败

php - 在 PHP MySQL 中切换数据库连接

mysql - 我可以有几个 'similar' 数据库表来减少检索时间吗

php - 如何根据另一个表的列从一个表中选择列?