扩展 PDO 语句类
是否可以扩展 PHP PDO 语句类以向其添加自定义方法?这与扩展 PDO 基类不同。如果是这样,由于仅在通过 PDO 类运行查询时才返回语句类,因此将如何执行此操作?
Is it possible to extend PHP PDO statement class to add custom methods to it? This would be different from extending the base PDO class. If so, how would one go about doing it since the statement class is only returned when running queries through the PDO class?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用
PDO::setAttribute()
:例子:
You can set the class with
PDO::setAttribute()
:Example:
这是由 PDO 下的 PHP 手册中的用户回答的:
您可以通过在此页面搜索“smileaf”找到他的原始答案:https://php.net/manual/en/book.pdo.php
This is answered by a user in the PHP Manual under PDO:
You can find his original answer by searching: 'smileaf' at this page: https://php.net/manual/en/book.pdo.php
这是我的代码,用于将选择查询的结果作为插入语句保存到文本文件中。
我首先扩展 PDOStatement 类以添加自定义方法 saveResultAsInsertStatement:
然后我扩展 PDO 类以设置属性 PDO::ATTR_STATMENT_CLASS
那么,我可以编写:
This is my code to save the result of a select query into a text file as insert statement.
I first extend the PDOStatement class to add the custom method saveResultAsInsertStatement:
Then I extend the PDO class to set the attribute PDO::ATTR_STATEMENT_CLASS
So then, I can write:
如果您为类使用命名空间,则需要在类字符串中添加反斜杠。
没有命名空间:
有命名空间:
If you are using namespaces for your classes you need to add a backslash to your class string.
Without namespace:
With namespace: