Я использую CodeIgniter в качестве основы своего веб-приложения. Я использовал простой Try / Catch и отправил примерное значение, чтобы проверить его, но оно не удалось!
Я знаю, что могу использовать функцию $this->db->escape()
для решения моей проблемы с данными, но я просто хочу знать: почему TRY / CATCH не может отловить эту ошибку!
Код контроллера:
$this->load->model('user_model');
$result = $this->user_model->test_user("tes'ti");
Код модели:
function test_user($username){
try {
$query_str = "SELECT * FROM tbl_user WHERE username = '".$username."'";
$result = $this->db->query($query_str);
return $result;
} catch (Exception $e) {
return;
}
}
Выход:
A Database Error Occurred
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ti'' at line 1
SELECT * FROM tbl_user WHERE username = 'tes'ti'
Дайте мне знать, где я допустил ошибку, если сделал!