CodeIgniter Проверьте, неверна ли база данныхPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 CodeIgniter Проверьте, неверна ли база данных

Сообщение Anonymous »

Я работаю над небольшим приложением, которое подключается к базе данных и извлекает данные из таблиц. Но мне нужно показать вызывающему абоненту, что мне не удалось подключиться к указанному хосту. Как я могу это сделать? Я пытался использовать этот фрагмент, но он не работает:

Код: Выделить всё

define('ERROR_STR', 'ERROR: ');
# ...
if ($this->db->_error_number() OR $this->db->_error_message()) {
die(ERROR_STR . $this->db->_error_number() . ': ' . $this->db->_error_message());
}
В моих журналах я вижу следующее:

Код: Выделить всё

ERROR - 2015-04-09 15:18:19 --> Severity: Warning  --> mysqli_connect(): (HY000/2005): Unknown MySQL server host 'localhosta' (2)
Но мне нужно проверить во время выполнения (очевидно, после попытки подключения), неверны ли параметры конфигурации базы данных (хост/пользователь/пароль), и отослать это сообщение об ошибке обратно вызывающему абоненту. $this->db->_error_number() и $this->db->_error_message() не выдают мне сообщения об ошибках.
Есть идеи? Надеюсь, я выразился достаточно ясно. Спасибо.

РЕДАКТИРОВАТЬ:

Вот моя конфигурация базы данных:

Код: Выделить всё

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = FALSE;
$db['default']['stricton'] = FALSE;
Но он объединен с реальным массивом конфигурации базы данных в моем контроллере:

Код: Выделить всё

    $this->connected = false;

$this->load->database(array_merge(array(
'hostname' => "localhost",
'username' => "username",
'password' => "password",
'database' => "database",
'dbdriver' => "mysqli",
'dbprefix' => "",
'pconnect' => FALSE,
'db_debug' => FALSE,
'cache_on' => FALSE,
'cachedir' => "",
'char_set' => "utf8",
'dbcollat' => "utf8_general_ci",
), (array) $json->conn), TRUE);

if ($this->db->initialize() !== FALSE) {
die('Not CONNECTED!');
}

$this->connected = true;
Но в журналах появляется ошибка для этой строки

Код: Выделить всё

if ($this->db->initialize() !== FALSE) {
говорю

Код: Выделить всё

ERROR - 2015-04-09 15:47:48 --> Severity: Notice  --> Undefined property: Main::$db /.../.../...
Понятия не имею, в чем дело.

Подробнее здесь: https://stackoverflow.com/questions/295 ... e-is-wrong
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»