php面向对象和封装Db类的心得
面向过程:就是分析出解决问题所需要的步骤,然后再用函数把这些步骤逐一实现。其实就是着重干什么,做什么。
面向对象:就是把构成问题的事物分解成各个对象,可以说谁来做。
两者的优点与缺点:
面向过程:性能比面向对象高,适合单片机,嵌入式开发。
面向对象:易维护、 易复用、 易扩展, 更适合我们从事的项目开发。
构造方法:实现数据库的连接,设置编码格式,数据库连接对象保存到属性中,并为其他方法使用。
以下是代码:
function __construct($dbname, $usr, $pwd, $host = "127.0.0.1", $port = 3306, $coding = 'utf8')
{
//建议使用mysqli,连接mysql数据库
$conn = mysqli_connect($host, $usr, $pwd, $dbname, $port);
if (mysqli_connect_errno($conn)) {
echo "连接数据库失败: " . mysqli_connect_error();
}
// 设置数据库连接字符集
mysqli_set_charset($conn, $coding);
$this->conn = $conn;
echo '连接数据库成功';
}
构造方法:不带任何参数。一般写数据库关闭。
function __destruct()
{
//关闭数据库连接,放在析构方法中最合适不过了
mysqli_close($this->conn);
// echo "<br/>断开数据库连接";
}
类的特点:继承性 封装性 多态性。
赋值的参数称为:带默认值参数 ,要把带默认值的参数写在其他参数的后面。
注意:带有默认值参数在调用时可以不用传参,也可以给带默认参数传递参数。
细节注意:防止有一些字段与sql关键字冲突,我们在字段上加上反引号。
传递数据,如果是字符串,值不能包括引号。
用到的关键函数
mysqli_connect_errno()函数返回上一次连接错误的错误描述 如果返回的是0 就是假。
mysqli_connect_error() 返回一个描述错误的字符串 没有错误发生返回null。