Php mysqli::uu construct()要求参数5为整数

Php mysqli::uu construct()要求参数5为整数,php,Php,我正试图上传我的网站到一个网站托管,但我需要phpmyadmin,所以我去phpmyadmin.co与用户名,密码和服务器,然后当我试图添加到我的php文件,它出现了这个错误 mysqli::_构造要求参数5为整数 这是我网站的代码 <?php class User{ private $dbServer = ""; private $dbHost = "http://www.phpmyadmin.co/"; private $dbUsername = ""; private

我正试图上传我的网站到一个网站托管,但我需要phpmyadmin,所以我去phpmyadmin.co与用户名,密码和服务器,然后当我试图添加到我的php文件,它出现了这个错误

mysqli::_构造要求参数5为整数

这是我网站的代码

<?php

class User{
private $dbServer   = "";
private $dbHost     = "http://www.phpmyadmin.co/";
private $dbUsername = "";
private $dbPassword = "";
private $dbName     = "sql12168044";
private $userTbl    = "users";

public function __construct(){
    if(!isset($this->db)){
        // Connect to the database
        $conn = new mysqli($this->dbHost, $this->dbServer, $this->dbUsername, $this->dbPassword, $this->dbName);
        if($conn->connect_error){
            die("Failed to connect with MySQL: " . $conn->connect_error);
        }else{
            $this->db = $conn;
        }
    }
}

/*
 * Returns rows from the database based on the conditions
 * @param string name of the table
 * @param array select, where, order_by, limit and return_type conditions
 */
public function getRows($conditions = array()){
    $sql = 'SELECT ';
    $sql .= array_key_exists("select",$conditions)?$conditions['select']:'*';
    $sql .= ' FROM '.$this->userTbl;
    if(array_key_exists("where",$conditions)){
        $sql .= ' WHERE ';
        $i = 0;
        foreach($conditions['where'] as $key => $value){
            $pre = ($i > 0)?' AND ':'';
            $sql .= $pre.$key." = '".$value."'";
            $i++;
        }
    }

    if(array_key_exists("order_by",$conditions)){
        $sql .= ' ORDER BY '.$conditions['order_by']; 
    }

    if(array_key_exists("start",$conditions) && array_key_exists("limit",$conditions)){
        $sql .= ' LIMIT '.$conditions['start'].','.$conditions['limit']; 
    }elseif(!array_key_exists("start",$conditions) && array_key_exists("limit",$conditions)){
        $sql .= ' LIMIT '.$conditions['limit']; 
    }

    $result = $this->db->query($sql);

    if(array_key_exists("return_type",$conditions) && $conditions['return_type'] != 'all'){
        switch($conditions['return_type']){
            case 'count':
                $data = $result->num_rows;
                break;
            case 'single':
                $data = $result->fetch_assoc();
                break;
            default:
                $data = '';
        }
    }else{
        if($result->num_rows > 0){
            while($row = $result->fetch_assoc()){
                $data[] = $row;
            }
        }
    }
    return !empty($data)?$data:false;
}

/*
 * Insert data into the database
 * @param string name of the table
 * @param array the data for inserting into the table
 */
public function insert($data){
    if(!empty($data) && is_array($data)){
        $columns = '';
        $values  = '';
        $i = 0;
        if(!array_key_exists('created',$data)){
            $data['created'] = date("Y-m-d H:i:s");
        }
        if(!array_key_exists('modified',$data)){
            $data['modified'] = date("Y-m-d H:i:s");
        }
        foreach($data as $key=>$val){
            $pre = ($i > 0)?', ':'';
            $columns .= $pre.$key;
            $values  .= $pre."'".$val."'";
            $i++;
        }
        $query = "INSERT INTO ".$this->userTbl." (".$columns.") VALUES (".$values.")";
        $insert = $this->db->query($query);
        return $insert?$this->db->insert_id:false;
    }else{
        return false;
    }
}
}

您正在将mysqli对象的第五个参数作为$dbName传递,但这应该是$dbPort,它是可选的,并且必须是整数。您必须重新组织参数以匹配以下内容:

mysqli::__construct ([ string $host = ini_get("mysqli.default_host") [,string $username = ini_get("mysqli.default_user") [, string $passwd = ini_get("mysqli.default_pw") [, string $dbname = "" [, int $port = ini_get("mysqli.default_port") [, string $socket = ini_get("mysqli.default_socket") ]]]]]] )
顺序为:$host、$username、$passwd、$dbname和$port。我看那里没有地方放你的$dbserver

更新:

只要用这个:

public function __construct(){
    if(!isset($this->db)){
        // Connect to the database
        $conn = new mysqli($this->dbHost, $this->dbUsername, $this->dbPassword, $this->dbName);
        if($conn->connect_error){
            die("Failed to connect with MySQL: " . $conn->connect_error);
        }else{
            $this->db = $conn;
        }
    }
}

然后扔掉$dbServer。

请告诉我这些不是您的生产凭证。如果没有这些凭证,我如何连接到服务器?@Connor主机就是您试图连接的服务器。主机就是您的服务器。这就是医生对mysqli类的看法。是的,我知道。您已经在dbhost中定义了服务器。那么你为什么要使用dbserver呢?顺便说一下,phpmymyadmin.co不是你的主机。他们给你用来存储数据的主机,就是你的主机。