-->

为什么是面向对象的PHP与库MySQLi比过程方法更好? [关闭](Why is object

2019-07-19 06:55发布

我一直在使用与MySQL *的处理方式,直到最近。 现在我想转移到mysqli的和面向对象的方法。 许多网上资源和书籍声明OOP比过程更甚至在PHP的情况下。 通过一些在线教程去后,我写了一个小程序,连接到数据库,并选择一个值。 我想知道为什么至上的方针,目的是更好? 加上这是编写一个PHP的面向对象网页的正确方法?

在面向对象的方法

 $host = "localhost"; $username = "root"; $password = ""; $dbname = "compdb"; @ $db = new mysqli($host, $username, $password, $dbname); if(mysqli_connect_errno()) { die("Connection could not be established"); } $query = "SELECT company_id FROM company_basic_details WHERE company_name = 'ABC'"; $result = $db->query($query); $total_num_rows = $result->num_rows; echo "The Results Are : <br>"; while($row = $result->fetch_array()) { echo $row['company_id']; } ?> 

该程序的方法

<?php

$host = "localhost";
$username = "root";
$password = "";
$dbname = "compdb";

@ $db = mysqli_connect($host, $username, $password, $dbname);

if(mysqli_connect_errno())
{
    die("Connection could not be established");
}

$query = "SELECT company_id FROM company_basic_details WHERE company_name = 'ABC'";
$result = mysqli_query($db, $query);

$total_num_rows = mysqli_num_rows($result);

echo "The Results Are : <br>";

while($row = mysqli_fetch_array($result))
{
    echo $row['company_id'];
}
?>

Answer 1:

主要的原因是,PHP是面向对象编程的方向稳步前进。

没有什么错误使用mysqli_xxx()函数,而不是面向对象当量; 它是完全一样的,只要代码而言。

唯一的问题是,你会在什么人所认为的精心编写PHP代码方面越走越让自己落后于曲线。

值得一提的是,PDO库,这被认为是非常适合于大多数PHP DB代码是OOP只。 它没有一个程序界面。 而且也不大部分加入到PHP在最近几个版本的其他新功能。 如果你想使用PHP发挥到极致,你需要知道的OOP反正。

还有即将为你的数据库的扩展类的能力点 - 是这样的:

class myDB extends mysqli {
     .... your own stuff here to extend and improve the base mysqli class
}

当然你也可以实现与程序代码同样的事情,但它不是面向对象的方式整齐。 当然,如果你真的想扩展类的唯一相关。

然而,作为第一步,只从移动mysql_xxx()mysqli_xxx()是一个很好的开始。 全路移动到使用OOP接口就更好了,只是切换到mysqli的功能是一个良好的开端。

使用程序界面开始肯定会令过渡了旧衣服mysql_xx()函数比较容易,所以如果切换到OOP接口实在是太多了开头的一个飞跃,不要觉得你必须做的这一切在一气呵成。 有转换到程序启动mysqli的功能,然后切换到OOP方法以后; 既不跳将在自己的那么大。



文章来源: Why is object oriented PHP with mysqli better than the procedural approach? [closed]