此代码:
$this->mysqli_connection = mysqli_connect($this->db_host,$this->db_user,$this->db_pass,$this->db_name);
if (!mysqli_connect_errno()) {
$this->database_created = TRUE;
}
我希望这段代码能够安静地通过一个错误,并检查没有错误。但是,它仍然会输出错误。
如果没有数据库,我需要的是能够创建一个。在这里,我只是持有一个属性,如果数据库存在与否,可以很容易地检查它。
这是正确的吗?这样做的方式?
答案 0 :(得分:1)
如果您不知道数据库是否存在,则应该连接而不指定数据库名称。
$this->mysqli = new mysqli($this->db_host,$this->db_user, $this->db_pass);
然后你可以运行查询“SHOW DATABASES LIKE'{$ this-> db_name}'”,否则只需继续创建数据库(如果它不存在)。
$ok = $this->mysqli->query("CREATE DATABASE IF NOT EXISTS {$this->db_name}");
然后,无论您是创建新数据库还是已存在,您仍然必须将该数据库作为默认数据库:
$ok = $this->mysqli->query("USE {$this->db_name}");
我同意你不会为生产网站做这个不必要的开销的评论。您应该在PHP脚本运行之前创建数据库,并且不要在每个请求上测试数据库是否存在。但我理解你的陈述,这只是为了练习。
答案 1 :(得分:0)
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$this->mysqli = mysqli_connect($this->db_host,$this->db_user, $this->db_pass);
$res = $this->mysqli->query("SHOW TABLES LIKE '$this->db_name'");
if ($res->fetch_row())
{
$this->mysqli->select_db($this->db_name);
} else {
}
答案 2 :(得分:-1)
$con = mysqli_connect('localhost', 'root', ''); $q = mysqli_query($con, 'SHOW DATABASES'); $dbName = 'dbname'; $dbExists = false; while ($row = mysqli_fetch_assoc($q)){ if($row['Database'] == $dbName){ $dbExists = true; break; } }