Я понял, что, поскольку класс драйвера БД с именем MySQLi
возвращает следующее значение для $this->db
экземпляра в модели (см. Атрибуты errno
и error
)
[_mysqli:protected] => mysqli Object
(
[affected_rows] => 1
[client_info] => mysqlnd 5.0.12-dev - 20150407 - $Id: b382534eeb34d9ed79345235b8bae2234b287afcs21ad4e $
[client_version] => 50012
[connect_errno] => 0
[connect_error] =>
[errno] => 0
[error] =>
[error_list] => Array
(
)
Я никогда не получу больше информации об ошибке, чем то, что mysql_errno
и mysql_error
возвращает водителю. Так что вместо этого, если ошибка проверки запроса, как этот
if($this->db->error())
{
return false;
}
Я могу просто сделать это
if(is_array($this->db->error()) && 0 !== $this->db->error()[0])
{
return false;
}
Ошибки возвращаются в формате массива или false из $this->db->error()
, и поэтому очень просто проверить, равен ли код ошибки нулю. Если оно равно нулю, мы можем предположить, что запрос выполнен как запланировано, и что импорт завершен.
Причина, по которой мы получаем массив вместо false из $ this-> db-> error (), заключается в том, что из запроса, который ожидает CI, не было получено никакого результата.
Так что ... простое решение в конце концов.