使用PHP OOP关闭MySQL连接

时间:2014-05-26 13:41:29

标签: php oop

我试图学习PHP OOP并遇到了问题。我尝试使用OOP打开和关闭连接

class db{
    public  function opendb(){
        $server = mysql_connect("localhost","root","") or die ("Couldn't connect to server");
        $db = mysql_select_db("test",$server) or die ("Couldn't connect to database");
        mysql_query("set character_set_server='utf8'");
        mysql_query("set names 'utf8'");    
    }

public function closedb(){
        mysql_close($server);   
    }   
}

并在我的PHP页面中使用此代码

$x = new db;
$x->closedb();

并进行此类查询

$x = new db;
$x->opendb();

但是我收到错误,因为无法从第二个函数内部访问$server。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

好的,既然你正在学习,我会保持这个基础。问自己这些问题:

  • 我的班级做什么?
  • 这个课程将采用哪些方法,以及将它们联系在一起的方式(它们有什么共同点)
  • 我的班级将如何使用,以及如何与用户沟通其状态

第一个问题的答案很简单:您的班级将管理数据库连接和查询。

这也回答了第二个问题,在某种程度上:如果要使用这些方法,每个方法都需要DB连接。所有方法都需要访问数据库连接,因此,连接必须具有类范围(即: 必须 是属性)。

最后一个问题,我不打算详细讨论,但常识要求后端课程没有直接与客户沟通(类似这样的课程不应该{{t> { {1}},echoexit)。一个严重的问题(比如无法连接到数据库)应该以不能忽略的方式传达给用户(调用你的类的代码):throw die' s:调用代码不能忽略这些。

现在我们已经列出了基础知识,让我们了解实际代码(遵循我在评论中链接到的约定,而不是使用Exception,因为它已被删除):< / p>

mysql_*

现在,如果您不了解所有这些代码,请不要担心:The manual explains all of the methods I've used

另外请注意,我在这里发布的代码是恕我直言,完全没有意义。我已经在codereview.stackexchange上详细解释了原因。 herealso herehere ...但是,如果您关心/想要,您可以阅读我关于包装的其他一些代码评论,基本上就是你在写什么。

它们可能很冗长,与您尝试做的事情没有直接关系,但谁知道:将来它们对您有用。