[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: использовать в codeigniter 3.1 try-блоки
mstdmstd
Всем привет,
Пытаюсь использовать в codeigniter 3.1 try-блоки в ситуациях, которые зависят от внешних факторов.
1) При вызове sql-функции - например если удалили/изменили sql-функцию:
       try {
$updated_result= $this->msettings->UpdateSettings( $update_data ) ;
echo '<pre>++ $updated_result::'.print_r($updated_result,true).'</pre>';
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
echo '<pre>INSIDE</pre>';
}

...

public function UpdateSettings(array $DataArray) : int
{
$ci = & get_instance();
$modified_count= 0;
foreach( $DataArray as $next_key=>$next_value ) {
$funcname= $this->db->dbprefix . "update_settings_NONEXISTING_FUNCTION";
$sql= " select * from ".$funcname."( '".$next_key."', '".$next_value."' )";
$func_ret = $ci->dbquery( $sql );
if (empty($func_ret[0][$funcname])) {
echo '<pre>_error()::'.print_r($this->db->error(),true) . '</pre>';
return false;
}
$modified_count++;
}
return $modified_count;
}


И в результате на экран(если включены настройки вывода ошибок на экран) выводится ошибка сервера, что функция не найдена и код внутри блока
     } catch (Exception $e) {...

на экран не выводится
Я так полагал что должен выполняться код внутри блока ... Или нет?

Строка:
           echo '<pre>_error()::'.print_r($this->db->error(),true) . '</pre>';

выводит
_error()::Array ( [code] => 00000 [message] => )



2) При аплоаде картинок
            if ( !empty($_FILES['price_list_default_product_image']['name']) ) {
$this->load->library('upload', $upload_config);
$res = $this->upload->do_upload('price_list_default_product_image');
if ($res) {
$updated_result= $this->msettings->UpdateSettings( array('price_list_default_product_image'=> $_FILES['price_list_default_product_image']['name']) ) ;
}
if (!$res) {
$error_message = '. Image uploading error : ' . $this->upload->display_errors();
}
}


Тут CI управляется и сам. В переменной $res - код возврата успешности возврата а
$this->upload->display_errors()

вернет строку с описанием ошибки, которую я и передам в темплейт для отображения...

Это CI такой умница ? или try-блоки не нужны ? Или если нужны, то в каких случаях ?


define('ENVIRONMENT',"production");
$config['log_threshold']=0;
php 7.0.8-0ubuntu0.16.04.3
codeigniter 3.1.0


Спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.