Orm 如何检查无脂肪映射器调用的结果以保存DB记录?

Orm 如何检查无脂肪映射器调用的结果以保存DB记录?,orm,fat-free-framework,Orm,Fat Free Framework,我正在使用SQL映射器更新MYSQL数据库中的记录,该数据库工作正常,但我看不到如何检查调用save()或update()的更新结果 Update似乎返回了整个mapper对象,它没有提供一种检查更新是否失败的明显方法。我应该检查返回码还是捕获异常 感谢您的帮助 马特所有地图绘制者都扩展了光标。问题是游标方法save()和update()返回这个值 相关:请参阅Github上的此问题: 解决方法可能是使用挂钩,例如aftersave或beforesave: $mapper->aftersa

我正在使用SQL映射器更新MYSQL数据库中的记录,该数据库工作正常,但我看不到如何检查调用save()或update()的更新结果

Update似乎返回了整个mapper对象,它没有提供一种检查更新是否失败的明显方法。我应该检查返回码还是捕获异常

感谢您的帮助


马特

所有地图绘制者都扩展了
光标
。问题是游标方法save()和update()返回这个值

相关:请参阅Github上的此问题:

解决方法可能是使用挂钩,例如
aftersave
beforesave

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

希望这能有所帮助。

如果在初始化DB对象时启用PDO,则可能会出现PDO样式的异常

提及

PDO异常参考:


注:我没有尝试过,所以不确定它们有多有用。

libregeek是正确的,您应该启用PDO异常并捕获它们:

$db=new\db\SQL($dsn,$user,$pwd[
\PDO::ATTR_ERRMODE=>\PDO::ERRMODE_异常]
);
$mytable=new\DB\SQL\Mapper($DB,'mytable');
试一试{
$mytable->copyfrom($input);
$mytable->save();
echo“数据已成功保存”;
}捕获(\p异常$e){
回声“出了问题”;
//让我们看看到底是什么:
$err=$e->errorInfo;
echo$err[0];//PDO错误代码
echo$err[2];//特定于驱动程序的错误消息
}
另见