我喜欢这个pdo fetch_object的例子: mysqli or PDO - what are the pros and cons?
如何将数据库cols映射到类构造函数? 我在表中有很多列,我只需要一些列来构造对象。
是否可以将对象直接序列化到数据库?或者我需要在对象类中实现一个方法?
感谢。
答案 0 :(得分:2)
我不知道如何将它绑定到构造函数,但你可以使用魔术setter和getter。只需忽略您不想要的任何列。这适用于我(在PHP 5.3上测试,但应该适用于任何PHP 5)。
class MyClass
{
// This will hold the data
private $data = array();
// A list of valid object properties
private $valid_fields = array('foo', 'bar');
// Magic setter. Silently ignore invalid fields
public function __set($key, $value)
{
if (in_array($key, $this->valid_fields)) {
$this->data[$key] = $value;
}
}
// Magic getter
public function __get($key)
{
if (isset($this->data[$key])) {
return $this->data[$key];
}
}
}
$db = new PDO('sqlite::memory:');
$result = $db->query('SELECT 1 AS foo, 2 AS bar, 3 AS quu');
$result->setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE, 'MyClass');
var_dump($result->fetch());