首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何构造PDOStatement类?

如何构造PDOStatement类?
EN

Stack Overflow用户
提问于 2014-05-21 19:46:51
回答 1查看 354关注 0票数 3

我正在写一个PDO扩展。我希望prepare方法PDO不调用它的父方法,而是构造它自己的PDOStatement

代码语言:javascript
复制
class Foo extends \PDO {
    public function prepare ($statement, $driver_options = []) {
        // return parent::prepare($statement, $driver_options);
        // What does parent::prepare do?
    }
}

看起来,PDO prepare方法只是构造PDOStatement实例,但是PDOStatement构造函数并没有我期望的所有参数(语句本身,等等)。

如何在用户土地上编写PDO prepare方法?

注意,我知道PDO::ATTR_STATEMENT_CLASS的存在,并且可以使用它来命名要构造的PDOStatement类。我感兴趣的是,这个PDOStatement是否可以在用户土地上构建.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-21 20:06:44

不能直接实例化PDOStatement。这是硬编码不允许的。

我在PHP5.5源代码中找到了这一点,在ext/pdo/pdo_stmt.c中:

代码语言:javascript
复制
static PHP_FUNCTION(dbstmt_constructor) /* {{{ */
{
        php_error_docref(NULL TSRMLS_CC, E_ERROR, "You should not create a PDOStatement manually");
}
/* }}} */

您应该通过调用PDO::PDOStatement ()或PDO::prepare()来创建一个。

从您的问题中还不清楚为什么需要直接实例化PDOStatement。我觉得你需要重新考虑你的目标。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23792451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档