mysqli, OOP vs Procedural



我只是第一次看到这个。我不知道你可以通过做之类的事情来实例化一个mysqli类

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

这对我来说是全新的……当连接到数据库时,我在网上或书中看到的每一个教程都是这样的:

$conn = mysqli_connect( $host, $username, $password, $db );
if ( !$conn ) {
    die( 'Sorry, could not connect');
}

为什么大多数教程都采用程序化的方式?即使在我看到的创建单独数据库类的教程中,也要告诉我使用过程风格的代码。。。

mysqli procedureal和oop有什么区别?有吗?我必须安装任何类型的扩展吗?或者我可以在代码中开始使用吗?这里完全是新手,所以不太确定。

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

谢谢你的帮助。。。

学习php很快就上瘾了。。。我只想知道越来越多。

互联网上99%的PHP教程都过时了,提倡糟糕的代码,或者是由可能不应该教PHP的人编写的(通常是以上所有内容)。你应该找到少数几个好的。

PDO通常比mysqli更受包括我在内的开发人员的青睐。首先,它可以处理比MySQL多得多的数据库。

从实际角度回答您的问题

为什么大多数教程都采用程序化的方式?

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

mysqli procedureal和oop有什么区别?有吗?

没有。

我必须安装任何扩展吗

没有(当然,除了mysqli本身)。

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

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

你必须明白,一组mysqli函数只是一个低级的API,不打算按原样使用。你必须在mysqli上实现一个包装器,然后使用这个包装器的方法。而PDO已经是这样一个包装器,它提供了执行许多任务的帮助。我写了一本关于PDO的指南,强调了它的好处,并揭示了一些迷信,我希望你能在其中找到许多问题的答案。

大多数mysqli_*函数都是对象方法的别名(PHP内部允许使用C宏轻松实现这一点,因此许多扩展都使用这种方法)。但可用性也是为了熟悉,所以使用旧mysql函数的用户更容易适应新界面。使用OOP或过程接口实际上只是一种风格/偏好。

如今,PDO通常是首选,但它并没有提供许多特定于mysql的功能。因此,mysqli扩展可能仍然存在一些用例。

最新更新