W mojej witrynie inicjalizuję połączenie DB przy użyciu wartości odczytanych z pliku konfiguracyjnego, tak jak poniżej:
$this->mysqli = new mysqli($databaseInfo->MySQL_Host, $databaseInfo->MySQL_User, $databaseInfo->MySQL_Pass, $databaseInfo->MySQL_Db);
(dla rekordu wartości są poprawnie odczytywane z pliku i gdy wszystko jest w porządku, połączenie db działa dobrze)
następnie pytam, czy wystąpił błąd podczas tworzenia obiektu MySQLi:
if (($this->mysqli!=null)&&($this->mysqli->errno == 0)) {
jeśli nie, to chcę ustawić zmienną błędu i obsługiwać ją później w kodzie ... Chcę, aby to sprawdzenie przechodziło tylko wtedy, gdy nie wystąpił żaden problem ... Pomyślałem „errno” zmienna zapewnia wystarczającą kontrolę ...
ale najwyraźniej nie, ponieważ niezależnie od błędu,Tworzę w pliku konfiguracyjnym, kod wciąż przeskakuje do gałęzi „wszystko jest w porządku” ... oczywiście PHP generuje wiele ostrzeżeń i ostatecznie zawiesza się na jakimś krytycznym błędzie związanym z faktem, że baza danych nie działa zgodnie z oczekiwaniami
więc moje pytanie brzmi - jak poprawnie skonfigurować początkową kontrolę połączenia DB, aby uniknąć takiej sytuacji?
Odpowiedzi:
0 dla odpowiedzi № 1Z PHP Manual spróbuj tego:
if (!$mysqli->error) {
printf("Errormessage: %sn", $mysqli->error);
}
0 dla odpowiedzi nr 2
Jeśli używasz PHP OOP
if ($mysqli->connect_error) {
die("Connect Error: " . $mysqli->connect_error);
}
?>
Jeśli używasz stylu proceduralnego PHP
if (!$link) {
die("Connect Error: " . mysqli_connect_error());
}
?>