이 코드를 죽어 없습니다. 그러나 여전히 오류가 출력됩니다.PHP MySQLI 조용히
데이터베이스가없는 경우 필요한 항목은 하나를 만드는 것입니다. 여기에는 데이터베이스가 존재하는지 여부를 쉽게 확인할 수있는 속성 만 있습니다.
이렇게하는 것이 올바른 방법입니까?
이 코드를 죽어 없습니다. 그러나 여전히 오류가 출력됩니다.PHP MySQLI 조용히
데이터베이스가없는 경우 필요한 항목은 하나를 만드는 것입니다. 여기에는 데이터베이스가 존재하는지 여부를 쉽게 확인할 수있는 속성 만 있습니다.
이렇게하는 것이 올바른 방법입니까?
데이터베이스가 있는지 여부를 모르는 경우 데이터베이스 이름을 지정하지 않고 연결해야합니다.
$this->mysqli = new mysqli($this->db_host,$this->db_user, $this->db_pass);
그런 다음 당신은 "LIKE SHOW의 데이타베이스 '{$ this-> DB_NAME}'"에 대한 쿼리를 실행할 수 있습니다하거나, 다른 단지 가서 존재하지 않는 경우 데이터베이스를 만듭니다.
$ok = $this->mysqli->query("CREATE DATABASE IF NOT EXISTS {$this->db_name}");
그런 다음 새 데이터베이스를 생성하거나 이미 존재 여부, 당신은 여전히 준비해야한다는 기본 데이터베이스와 데이터베이스 :
$ok = $this->mysqli->query("USE {$this->db_name}");
난 당신이 할 것이라고 의견에 동의 프로덕션 사이트에 대한 이러한 불필요한 오버 헤드. PHP 스크립트를 실행하기 전에 데이터베이스를 작성하고 모든 요청에 대해 데이터베이스가 있는지 테스트하지 않아야합니다. 그러나 나는 이것이 단지 운동을위한 것이라는 진술을 이해합니다.
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 {
}
$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; } }
나는 제목을 보았을 때 "내 얼굴에 베개를 씌워"라고 생각했습니다. 나는 그것에 대해 누군가와 이야기해야한다고 생각합니다. :/ –
데이터베이스가 없다고 생각하는 이유는 무엇입니까? 그리고 그렇다면 왜 db 사용자는 CREATE DATABASE 권한을 가지고 있습니까? –
@ JohnConde : 웃음을 가져 주셔서 감사합니다. 새 와이프 화면이 있습니다. –