mysql - 将 PDO FETCH_CLASS 与多态类一起使用

标签 mysql class pdo polymorphism

我有一个像这样的 php 类:

class bar{
    public $value;
}

class foo extends bar{
    public $value;
    public $name;
}

在数据库中:

-bar table:
value
-----
'bar value 1'
'bar value 2'

-foo table:
value        |  name
-------------+--------------
'foo value 1'| 'foo name 1'
'foo value 2'| 'foo name 2'

如何使用 PDO FETCH_CLASS 存储和获取它们?

最佳答案

这似乎不需要特殊处理。只要您知道请求的是 foo 还是 bar,您只需将其作为字符串传递给 fetch 调用即可。由于 foobar 有不同的表,我假设您在查询时已确定需要哪一个。

// Build a foo
$stmt->setFetchMode(PDO::FETCH_CLASS, 'foo');
$stmt->fetch()

// Or build a bar
$stmt->setFetchMode(PDO::FETCH_CLASS, 'bar');
$stmt->fetch()

关于mysql - 将 PDO FETCH_CLASS 与多态类一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10668898/

相关文章:

php - MYSQL UPDATE 字段具有另一个字段的值*并且*在 foreach 循环内的准备好的语句中使用 REPLACE

mysql - Hive建表失败

css - 减少引用来自不同 CSS 文件的类

Python:将主类传递给其他类是个坏主意吗?

c++ - 映射中的c++/元素通过退出函数神秘地消失

php - PDO - 引号正在生成 MySQL 语法错误

python - 如何在Python中使用MySQL的NULL和DEFAULT关键字进行INSERT查询?

mysql - 执行 UPDATE 查询时是否可以使用 ON DUPLICATE KEY 功能?

php - 使用 PHP 和 PDO 重定向链接

php - 我为什么要制作数据库包装器?