Sta*_*y J 28 php mysqli procedural-programming object
直到最近,我一直在使用mysql*的过程方法.现在我想转向mysqli和面向对象的方法.许多在线资源和书籍都表明,即使在PHP的情况下,OOP也优于程序.在完成一些在线教程之后,我编写了一个连接数据库并选择一个值的小程序.我想知道为什么面向对象的方法更好?加上这是编写OO 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'];
}
?>
Run Code Online (Sandbox Code Playgroud)
程序方法
<?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'];
}
?>
Run Code Online (Sandbox Code Playgroud)
SDC*_*SDC 34
主要原因是PHP正朝着面向对象编程的方向稳步前进.
使用mysqli_xxx()函数而不是OOP等价物没有任何问题; 就代码而言,它完全相同.
唯一的问题是,就人们对编写良好的PHP代码的看法而言,你将越来越远.
值得注意的是,PDO库被认为是PHP中大多数DB代码的理想选择,它只是OOP.它没有程序界面.在过去的几个版本中,大多数其他新功能也没有添加到PHP中.如果你想最充分地使用PHP,你无论如何都需要知道OOP.
关于为数据库创建扩展类的能力还有一点 - 就像这样:
class myDB extends mysqli {
.... your own stuff here to extend and improve the base mysqli class
}
Run Code Online (Sandbox Code Playgroud)
当然,您可以使用过程代码实现相同的功能,但它并不像OOP那样整洁.当然,只有你真的想扩展课程才有意义.
然而,作为第一步,只从移动mysql_xxx()到mysqli_xxx()是一个很好的开始.移动整个方式使用OOP接口会更好,但只需切换到mysqli函数就是一个好的开始.
使用程序界面开始肯定会使旧mysql_xx()函数的转换变得更容易,所以如果在开始时切换到OOP接口是一个太大的飞跃,不要觉得你必须一次性完成所有操作.首先转换到过程mysqli函数,然后切换到OOP方法; 跳跃本身并不会那么大.
| 归档时间: |
|
| 查看次数: |
31452 次 |
| 最近记录: |