我对php很新,我正在努力学习它。
我的问题很简单,但谷歌搜索时我有点迷失。
我只想创建一个对象来管理数据库连接。我已经完成了对象,现在我面临的问题是:
如何将其实例化为会话? (因此,我不需要在每次加载页面时打开/关闭与数据库的连接)以后如何调用它?
有没有办法声明一个驱逐舰,所以当实例死亡时,与数据库的连接会被关闭?
答案 0 :(得分:3)
如果在对象上定义__destruct()方法,则在对象即将被销毁时将调用它。您可以使用它来关闭数据库连接。
您还可以将__sleep() and __wakeup()用于serializing your objects。它们会在序列化和反序列化时自动调用。您可以根据需要使用这些方法进行连接和断开连接。
答案 1 :(得分:1)
我不想通过驳斥这个问题来回答,但我认为你要在这里以错误的方式解决问题。
我建议使用缓存,索引等来解决性能问题,而不是担心建立连接所涉及的资源,而不是担心连接被打开/关闭。
如果您真的关心性能,为什么不缓存受影响的页面并完全避免使用数据库连接?
我认为你可以通过这个功能得到预期的效果(假设mysql不要自己使用它)但请务必阅读评论:
http://www.php.net/mysql-pconnect
我认为你不想开始使用睡眠/唤醒技术来实现这一点,因为据我所知,这将涉及创建一大堆独立的线程,每个线程都有自己的数据库连接,这将只会消耗你的资源并产生与预期效果相反。