数据访问
面向对象:
类:由众多对象抽象出来的
对象:由类实例化出来的,任何东西都可以看做对象来研究
定义类:
class 类名
{
成员变量
成员方法
}
构造函数:写法特殊 执行特殊,对类里面的成员进行初始化
析构函数:在对象销毁的时候自动执行
三大特性:
封装
目的:让类更加安全,避免外界直接访问成员
做法:把成员变量变为私有,写方法来访问成员变量(自定义, __get __set)
继承
概念:子类可以继承父类的一切东西
特点:单继承,一个子类只能有一个父类,一个父类可以有多个子类
多态
基础条件:必须继承 子类要对父类的方法进行重写
概念:父类引用指向子类实例,由于子类对父类的方法进行了重写,这样调用父类方法的时候表现出的不同
静态:静态的成员是属于类的,普通成员是属于对象的
静态成员访问:类名::成员 普通成员访问:先造对象 对象->成员
对象克隆:clone
加载类:include require
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<?php
/*//方式一:已经过时
//1.造一个连接(建立通道)
$db = mysql_connect("localhost","root","123");
//2.选择要操作哪一个数据库
mysql_select_db("mydb",$db);
//3.写SQL语句
$sql = "select * from Info";
//4.执行SQL语句,返回结果集
$result = mysql_query($sql);
//5.从结果集中取数据
while($row = mysql_fetch_row($result))
{
var_dump($row);
}*/
//方式二:面向对象的方式
//1.造一个连接对象
//$db = new MySQLi("localhost","root","123","mydb");
//2.判断连接是否出错
/*if(mysqli_connect_error())
{
echo "连接失败";
exit(); //退出程序
}*/
//!mysqli_connect_error() or die("连接失败!");
//3.写SQL语句
//$sql = "select count(*) from Info";
//$sql = "insert into Info values('p001','','','','')";
//4.执行SQL语句,查询语句如果执行成功返回结果集对象,如果执行失败返回false
//$result = $db->query($sql);
//5.从结果集中读取数据
//if($result)
//{
//var_dump($result->fetch_row()); //返回一行数据的数组(索引数组)
/*while($row = $result->fetch_row())
{
var_dump($row);
}*/
//var_dump($result->fetch_assoc());//返回一行数据(关联数组)
//$shuju = $result->fetch_all();//返回所有数据(二维数组)
//var_dump($result->fetch_object());//返回一行数据(对象)
//echo $shuju[0][0];
//}
//1.造连接对象
$db = new MySQLi("localhost","root","123","mydb");
//2.判断是否出错
!mysqli_connect_error() or die("连接失败!");
//3.写SQL语句
$sql = "select * from Nation";
//4.执行SQL语句
$result = $db->query($sql);
//5.取数据
if($result)
{
$attr = $result->fetch_all();
echo "<select>";
foreach($attr as $v)
{
echo "<option value='{$v[0]}'>{$v[1]}</option>";
}
echo "</select>";
}
?>
</body>
</html>