2016-12-21 5 views
1

Я использую SQL Mapper для обновления записей в моей базе данных MYSQL, которая работает нормально - но я не вижу, как проверить, какой результат обновления был вызван вызовом save() или update().Как проверить результат вызова Fat Free Mapper для сохранения записи в формате DB?

Обновление, похоже, возвращает весь объект mapper, который не дает очевидного способа проверить, не произошло ли обновление. Должен ли я проверять код возврата или перехватывать исключение?

Любая помощь оценена!

Matt

ответ

1

libregeek правильно, вы должны включить исключения PDO и поймать их:

$db=new \DB\SQL($dsn,$user,$pwd,[ 
    \PDO::ATTR_ERRMODE=>\PDO::ERRMODE_EXCEPTION] 
); 

$mytable=new \DB\SQL\Mapper($db,'mytable'); 

try { 

    $mytable->copyfrom($input); 
    $mytable->save(); 
    echo 'Data successfully saved'; 

} catch(\PDOException $e) { 

    echo 'Something went wrong'; 
    // let's find what exactly: 
    $err=$e->errorInfo; 
    echo $err[0];// PDO error code 
    echo $err[2];// driver specific error message 

} 

Смотрите также this topic.

0

Все картографы продлить Cursor. Проблема заключается в методах курсора save() и update().

Связанные: см этого вопроса на Github: https://github.com/ikkez/f3-cortex/issues/3

Выход может использовать крюки, такие как aftersave или beforesave:

$mapper->aftersave(function($self,$pkeys){ 
    //do something after inserting or updating 
    // Maybe validate 
}); 

Надеется, что это помогает.