我试图根据用户注册创建数据库,并在其下创建一些表。正在创建数据库,但是当我现在尝试选择数据库并在其下创建表时,这些表将转而位于默认数据库下。
首先,这是我的数据库连接:
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);
我认为已选择新数据库,但不是在新数据库下创建表,而是在默认数据库下创建表。请问我哪里可能出问题了?