首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在这个类层次结构中,我可以在哪里关闭mysql连接?

问在这个类层次结构中,我可以在哪里关闭mysql连接?
EN

Stack Overflow用户
提问于 2011-07-24 05:36:44
回答 2查看 136关注 0票数 1

我在PHP中有4个类,我用来注册用户,问题是我不知道如何关闭mysql连接。

类调用:

single_connect->数据库->post->注册

当我在单例中实现mysql_close()时,它会破坏我的代码。我的假设是,只要创建了一个注册对象,它所扩展的类也会被“实例化”。但事实似乎并非如此。

我不得不注释掉mysql_close才能让它工作。请注意,我的单例使用数据库链接来确定它是否存在,而不是像大多数单例那样使用指向自身的指针。

代码语言:javascript
复制
/*single_connect*/

class single_connect
  {
  private static $_db_pointer = NULL;
  private function __destruct() 
    {
    //mysql_close();
    }
  private function __construct()
    {
    self::$_db_pointer = mysql_connect(DB_HOST, DB_USER, DB_PASS);
    mysql_select_db(DB_DATABASE);
    }
  public static function get_connection()
    {
    if(self::$_db_pointer == NULL)
      {
      return new self();
      } 
    }
  }

/*database*/

abstract class database
  {
  protected function __construct()
    {
    single_connect::get_connection();
    }
  protected static function query($query)
    {
    $result = mysql_query($query) or die(mysql_error());
    return $result;
    }
  }

/*post*/

class post extends database
  {
  public $_protected_arr=array();
  protected function __construct()
    {
    parent::__construct();
    $this->protect();
    }
  protected function protect()
    {
    foreach($_POST as $key => $value)
      {
      $this->_protected_arr[$key] = mysql_real_escape_string($value);
      }
    }
  }

/*signup*/

class signup extends post 
  { 
 ...
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-24 05:41:06

当脚本执行完成时,连接会自动关闭。因此,如果在最后一次数据库操作和脚本结束之间没有大量的时间,我就不会费心显式地关闭连接。

票数 2
EN

Stack Overflow用户

发布于 2011-07-24 11:58:30

我找到问题了。在我关于单例类和静态属性的解释中,我检查了PHP如何处理静态属性。

“与任何其他PHP静态变量一样,静态属性只能使用文字或常量进行初始化;不允许使用表达式。因此,虽然您可以将静态属性初始化为整数或数组(例如),但您不能将其初始化为另一个变量、函数返回值或对象。”http://php.net/manual/en/language.oop5.static.php

您不能像在C++、Java或大多数其他OOP语言中那样将静态属性设置为对象。在这种情况下,当类被GC时,连接是关闭的。

我向prodigitalson道歉,我的评论是错误的。

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

https://stackoverflow.com/questions/6803466

复制
相关文章

相似问题

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