【发布时间】:2014-08-10 03:31:06
【问题描述】:
使用 PDO,我们现在可以以惊人的速度轻松地将我们的字段映射到对象的属性。这个:
class myClass
{}
$stmt = $db->prepare('SELECT foo,bar FROM table WHERE id=28');
$stmt->setFecthMode(PDO::FETCH_CLASS,'myClass');
$object = $stmt->fetch();
$object 现在是类 myClass 的对象,具有 foo 和 bar 作为属性。整洁!
现在,如果我可以仅使用 PDO 或 php 甚至 MySQL 的内置函数将我的对象保存回数据库中,那岂不是不可思议!像这样:
$stmt = $db->prepare('UPDATE table SET * = ?');
$stmt->setUpdateMode(PDO::UPDATE_CLASS);
$stmt->execute($object);
到目前为止,我为每个实例定义了自定义保存类。虽然速度很快,但维护起来很麻烦,而且很容易出错。
当然,一个对象必须具有与其尝试更新的属性完全相同的属性,或者可能更少的字段,但不能更多。
它存在吗?作为完美 ORM 的 PDO 缺少的部分?!
【问题讨论】:
-
不,我不这么认为。而且 PDO 不是 ORM!
-
当然不是 :p
-
但是Roll You Own不会花太多力气。