【问题标题】:PHP POCO style database accessPHP POCO 风格的数据库访问
【发布时间】:2014-01-20 18:27:04
【问题描述】:

使用 PHP,我知道如何使用 mysql_query()、PDO->query() 和 pdo->prepare() 访问数据库,然后是 PDO->bindParam() 和 PDO->execute()。

但是在过去我遇到过一种数据库访问方法,其中您有一个类对象,其中包含反映数据库中字段的变量名称,并且您更改字段值以与数据库交互。

不过,我只在 C# 中看到过这种情况。 C# 对象称为 POCO 对象,看起来像一个只有变量的类。

是否可以在 PHP PDO 中做类似的事情。

【问题讨论】:

    标签: php mysql database pdo


    【解决方案1】:

    最简单的解决方案是使用带有PDO::FETCH_OBJPDO::FETCH_CLASS 的PDO。

    查看文档:

    例子:

    $stmt = $pdo->prepare(...);
    $stmt->execute();
    while ($obj = $stmt->fetch(PDO::FETCH_OBJ)) {
      // $obj is a new object of class stdClass
      echo $obj->columnname
    }
    

    例子:

    $stmt = $pdo->prepare(...);
    $stmt->execute();
    $stmt->setFetchMode(PDO::FETCH_CLASS, 'MyClass');
    while ($obj = $stmt->fetch()) {
      // $obj is a new object of class MyClass
      echo $obj->columnname
    }
    

    【讨论】:

    • 我使用 PDO::FETCH_OBJ 读取数据,即 $A = PDO->Prepare(.....) $A->setFetchMode(PDO::FETCH_CLASS, 'MyClass'); while ($row $A->fetch()){ $B = $row->fieldname } 但是是否可以通过提交类对象来提交必须对数据库进行的更改
    • 不,除非您自己在MyClass 的代码中编写该功能。
    • 但是您可以使用功能更全的 ORM,例如 Doctrine 或 Zend Framework,但这与您最初关于 POCO 的问题相去甚远。
    • 是的,PDO 只是数据库访问 Zend 是一个完整的 PHP 框架
    猜你喜欢
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多