PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-如何构造PDOStatement类?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在编写一个PDO扩展.我希望PDO的prepare方法调用其父级,而是构造自己的PDOStatement.

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准备方法

请注意,我知道PDO :: ATTR_STATEMENT_CLASS的存在,并且可以使用它来命名要构造的PDOStatement类.我很想知道PDOStatement是否可以在用户区域中构建.

解决方法:

您不能直接实例化PDOStatement.它被硬编码禁止.

我在ext / pdo / pdo_stmt.c的PHP 5.5源代码中找到了这个:

static PHP_FUNCTION(dbstmt_constructor) /* {{{ */
{
        PHP_error_docref(NULL TSRMLS_CC, E_ERROR, "You should not create a PDOStatement manually");
}
/* }}} */

您应该通过调用PDO :: query()或PDO :: prepare()创建PDOStatement.

从您的问题尚不清楚,为什么您需要直接实例化PDOStatement.我认为您需要重新虑自己的目标.

大佬总结

以上是大佬教程为你收集整理的php-如何构造PDOStatement类?全部内容,希望文章能够帮你解决php-如何构造PDOStatement类?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: