2011-06-02 63 views
10

我刚刚第一次看到这个。我不知道,你可以做这样的事情mysqli,OOP vs Procedural

new mysqli($host, $username, $password, $db); 

实例化的mysqli类这是全新的我...每一个连接到数据库时,我已经在网上或书看到教程做这样的事情:

$conn = mysqli_connect($host, $username, $password, $db); 

if (!$conn) { 
    die('Sorry, could not connect'); 
} 

为什么大多数教程都这样做的程序方式有一个原因吗?即使在我看到创建一个单独的数据库类的教程,告诉我使用程序风格的代码...

与mysqli程序与oop有什么区别?有没有?我必须安装某种扩展吗?或者我可以在我的代码中开始使用?这里总共有新手,所以不太确定。

此外,什么时候使用PDO vs mysqli是一个好主意?大型企业应用程序开发人员最常使用PDO吗?或者只是一个偏好问题。

感谢您的帮助......

学习PHP已经迅速成为上瘾......我只是想知道更多。

+0

mysqli的大多数教程都是针对那些熟悉旧的mysql库的人,他们只是程序性的。从mysql到过程mysqli的过渡不像人们转向OO mysqli那样是一种心理转变。但是,正如下面的alex指出的那样,使用PDO比使用上述任何一种都好,所以直接去那里吧。 – 2011-06-02 01:17:42

回答

11

99%的PHP教程在互联网上已经过时,主张可怕的代码或由可能不应该教PHP的人编写(通常都是上述内容)。你应该找到handful of good ones

开发人员(包括我)通常会比mysqli更喜欢PDO。首先,它可以处理比MySQL更多的数据库。

+0

第一句话+1,如果可能的话,下一页也会有+1。 – 2011-06-02 01:16:24

+1

链接的页面被删除。你能列出这个答案本身的好PHP教程吗? – MAKZ 2014-10-25 02:38:37

+0

@MAKZ只要得到10k代表,你可以看到它:) – alex 2014-10-26 22:02:57

3

大多数mysqli_*函数是对象方法的别名(PHP在内部很容易使用C宏,所以许多扩展使用该方法)。但可用性也是为了熟悉,所以旧的mysql函数的用户可以更容易地采用新界面。使用OOP或程序界面实际上只是样式/偏好。

现在PDO通常是首选,但它不提供许多mysql特有的功能。所以mysqli扩展可能还有一些用例。

4

回答您的问题但从

实际点是否有一个原因,大多数的教程做的程序呢?

足以说明原因与技术无关。

mysqli程序与oop有什么区别?有没有?

我一定要安装任何扩展

否(除mysqli的本身,当然)。

此外,什么时候使用PDO是一个好主意?

是的。事实上,PDO将是唯一的理智选择。

你必须明白,mysqli函数集只是一个低级别的API,并不打算按原样使用。必须在mysqli上实现一个包装器,然后使用这个包装器的方法。虽然PDO是这样一个包装已经,提供执行许多任务的帮助。我写了a guide on PDO,强调它的好处并且公开了一些迷信,我希望你能找到你肯定有很多问题的答案。