Проверьте ошибки запроса codeigniter вместо того, чтобы показывать их пользователю - PullRequest
11 голосов
/ 06 июля 2011

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

Допустим, у меня есть такая ситуация, когда мой класс подкачки использует сегмент URI для отображения страницы example.com/page/uri_segment. Если кто-то напишет это так example.com/page/bla_bla_bla, я получу сообщение об ошибке, в котором отображается информация о моей базе данных.

Как я могу справиться с этим?

Ответы [ 3 ]

28 голосов
/ 06 июля 2011

В application / config / database.php установлено

// suppress error output to the screen
$db['default']['db_debug'] = FALSE;

В вашей модели или контроллере:

// try the select.
$dbRet = $this->db->select($table, $dataArray);
// select has had some problem.
if( !$dbRet )
{
   $errNo   = $this->db->_error_number();
   $errMess = $this->db->_error_message();
   // Do something with the error message or just show_404();
}
3 голосов
/ 21 октября 2015

Вы можете попробовать это $this->db->error();, вы получите ErrorCode & Errormessage в формате массива.

0 голосов
/ 06 июля 2011

вы можете проверить это как:

function myFunction() {
  echo 'Oeps';
}

$res = mysql_query($sql);
if($res && mysql_num_rows($res)>0){
  echo 'Success';
} else {
   myFunction();
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...