未在所选数据库下创建表

时间:2019-07-13 06:18:26

标签: php mysql database oop mysqli

我试图根据用户注册创建数据库,并在其下创建一些表。正在创建数据库,但是当我现在尝试选择数据库并在其下创建表时,这些表将转而位于默认数据库下。

首先,这是我的数据库连接:

class dbconn {
    private $servername;
    private $username;
    private $password;
    private $dbname;

    protected function connect() {
        $this->servername = "localhost";
        $this->username = "root";
        $this->password = "";
        $this->dbname = "default_db";

        //to return the db connection
        $conn = new mysqli($this->servername, $this->username, $this->password, $this->dbname);
        return $conn;
}

我通过以下方式将以上内容包含到我的类文件中: 包括“ dbconn.php”

这是我选择数据库并在所选数据库下创建表的方法:

public function sel_db_create_tab($dbname, $tabname, $cols) {
       $selectdb =  mysqli_select_db($this->connect(), $dbname);
       $sql = "CREATE TABLE IF NOT EXISTS $tabname($cols)";
       $result = $this->connect()->query($sql);
       return $result ? true : false;
}

该类文件现在已包含在主要API中,并且该类实例化为:

$class = new user;

参数通过以下方式从主API传递:

$dbname = "new_db";
$tabname = "new_tab";
$cols = "new_cols";

$class->sel_db_create_tab($dbname, $tabname, $cols);

我认为已选择新数据库,但不是在新数据库下创建表,而是在默认数据库下创建表。请问我哪里可能出问题了?

0 个答案:

没有答案