2014-01-07 3 views
0

Я получаю неожиданное исключение. Когда я обновить данные, как это:Получение класса исключения по методу PDO

try { 
    $restaurantUpd = new Restaurant(); 
    $restaurantUpd->updateRestaurant(array('restaurant_name' => Input::get('restaurant_name'), 
              'restaurant_location' => Input::get('restaurant_location'), 
              'restaurant_contact_email' => Input::get('restaurant_contact_email') 
             ), $_GET['edit']); 
    //ok 
} catch(Exception $e) { 
    die($e->getMessage()); 
} 

возвращает эту ошибку: Warning: require_once(classes/Exeption.php): failed to open stream: No such file or directory in C:\xampp\htdocs\admintest\core\init.php on line 32

Но самое странное, у меня нет Exeption.php класса? Кроме того, линия 32 относится к моей автозагрузке:

/* 
* Autoload function for classes 
*/ 
spl_autoload_register(function($class) { 
    require_once 'classes/' . $class . '.php'; 
}); 

Мой метод обновления в классе ресторана, как это ...

public function updateRestaurant($fields = array(), $id = null) { 
    if (!$this->_db->update('rt_restaurant', $id, $fields, false)) { 
     throw new Exeption('There was a problem updating'); 
    } 
} 

и метод обновления из класса DB является PDO подготовить, выполнять выборки

Любые указания?

+4

'Exeption' предполагает, что может быть опечатка –

+0

spl_autoload_register попробуйте потребовать файл, если этот CLASS не найден, в вашей программе он пытается найти класс исключений, который вызывается в вашем CATCH, возможно, вы используете старую версию PHP. Пожалуйста, сообщите вашей версии php и проверьте, есть ли у нее класс Exception ... –

+0

Моя версия версии php обновлена ​​... PHP Version 5.4.22 – rZaaaa

ответ

0

Это была опечатка в методе класса

public function updateRestaurant($fields = array(), $id = null) { 
    if (!$this->_db->update('rt_restaurant', $id, $fields, false)) { 
     throw new Exeption('There was a problem updating'); 
    } 
} 

также ... за исключением WHAS брошенные, потому что была ошибка в методе де DB я отбирал WHERE id = $ ID

, но в MySQL он не назывался id, а rest_id.

0

У вас есть орфографическая ошибка Exeption будет Exception в этой линии

throw new Exeption('There was a problem updating'); 

Если это не работает:

Попробуйте это:

} catch(\Exception $e) { 

и

throw new \Exception('There was a problem updating'); 

С ручной Prefixing a name with \ will specify that the name is required from the global space even in the context of the namespace.

http://www.php.net/manual/en/language.namespaces.fallback.php

+0

не работает .. :( – rZaaaa

+0

Что находится наверху вашего файла? какое-либо пространство имен или заявление использования? – chanchal118

+0

@rZaaaa отредактировал мой ответ. – chanchal118

Смежные вопросы