11.3 开课一个月零三十天 (数据库封装和引用)
第1步:建一个封装类的文件DBDA.class.php
<?php
//建一个封装类的文件DBDA.class.php
class DBDA//定义一个类,类名为DBDA
{
public $host="localhost";//4个比较常用的参数:服务器地址
public $uid="root";//用户名
public $pdw="666";//密码
public $dbname="toupiao";//数据库名称
//封装方法
//1.返回二维数组的方法
/**
*给一个sql语句,返回执行的结果
*@param string $sql 用户指定的sql语句
*@param int $sql用户给的语句类型,0代表增删改,1代表查询。一般查询使用的比较多,让$type的默认值为1.如果是增删改再改$type的值。
*@return array 返回查询的结果,如果是查询,返回二维数组。如果是增删改,返回$result。
*/
function Query($sql,$type=1)
{
//造连接对象
$db = new MySQLi("$this->host","$this->uid","$this->pdw","$this->dbname");
//执行sql语句
$result = $db->query("$sql");
//从结果集对象里取数据。查询单独做一个方法,其它做另一个方法。
if($type==1)//如果是查询
{
return $result->fetch_all();//返回查询的二维数组
}
else//如果是增删改
{
return $result;//返回$result
}
}
}
第2步:将封装的类引用到页面中
<!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
include("DBDA.class.php");//将封装的类引入此页面
$db = new DBDA();//新建一个对象
$sql = "select * from info";
var_dump($db->Query($sql));//第2个参数不写的话就是查询,因为默认值是1.
?>
</body>
</html>
如果是增删改,结果返回boolean flase
<!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
include("DBDA.class.php");//将封装的类引入此页面
$db = new DBDA();//新建一个对象
/*$sql = "select * from info";
var_dump($db->Query($sql));//第2个参数不写的话就是查询,因为默认值是1.*/
$sql = "update info set name='杨宁波' where code='p001'";
var_dump($db->Query($sql,0));
?>
</body>
</html>
让输出结果为关联数组
第1步:封装类
<?php
//建一个封装类的文件DBDA.class.php
class DBDA//定义一个类,类名为DBDA
{
public $host="localhost";//4个比较常用的参数:服务器地址
public $uid="root";//用户名
public $pdw="666";//密码
public $dbname="text1";//数据库名称
//封装方法
//1.返回二维数组的方法
/**
*给一个sql语句,返回执行的结果
*@param string $sql 用户指定的sql语句
*@param int $sql用户给的语句类型,0代表增删改,1代表查询。一般查询使用的比较多,让$type的默认值为1.如果是增删改再改$type的值。
*@return array 返回查询的结果,如果是查询,返回二维数组。如果是增删改,返回$result。
*/
function Query($sql,$type=1)
{
//造连接对象
$db = new MySQLi($this->host,$this->uid,$this->pdw,$this->dbname);
//执行sql语句
$result = $db->query($sql);
//从结果集对象里取数据。查询单独做一个方法,其它做另一个方法。
if($type==1)//如果是查询
{
return $result->fetch_all();//返回查询的二维数组
}
else//如果是增删改
{
return $result;//返回$result
}
}
//2.返回关联数组的方法
/**
*给一个sql语句,返回关联的二维数组
*@param string $sql 用户指定的sql语句
*@param int $sql用户给的语句类型,0代表增删改,1代表查询。一般查询使用的比较多,让$type的默认值为1.如果是增删改再改$type的值。
*@return array 返回查询的结果,如果是查询,返回二维数组。如果是增删改,返回$result。
*/
function GuanQuery($sql,$type=1)
{
//造连接对象
$db = new MySQLi($this->host,$this->uid,$this->pdw,$this->dbname);
//执行sql语句
$result = $db->query($sql);
//取数据
if($type==1)//如果$type=1
{
$attr = array();
while($a = $result->fetch_assoc())//每次返回一条关联数组,要把它拼成二维数组。
{
$attr[]=$a;//把取到的$a放到数组里面
}
return $attr;//返回二维的关联数组
}
else
{
return $result;//如果$type不等于1,返回$result。
}
}
}
第2步:将文件引用到页面
<!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
include("DBDA.class.php");//将封装的类引入此页面
$db = new DBDA();//新建一个对象
$sql = "select * from info";
var_dump($db->GuanQuery($sql));//第2个参数不写的话就是查询,因为默认值是1.
//$sql = "update info set name='杨宁波' where code='p001'";
//var_dump($db->Query($sql,0));
?>
</body>
</html>
让输出结果为字符串
第1步:封装类
<?php
class DBDA
{
public $host="localhost";
public $uid="root";
public $pwd="666";
public $dbname="text1";
/**
*给一个sql语句,返回执行的结果
*@param string $sql 用户指定的sql语句
*@param int $type 用户给的语句类型,0代表增删改,1代表查询
*@return 返回查询的结果,如果是查询返回二维数组,如果是增删改返回true或false
*/
function Query($sql,$type=1)
{
//造连接对象
$db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
//执行sql语句
$reslut = $db->query($sql);
//从结果集对象里面取数据
if($type==1)
{
return $reslut->fetch_all();
}
else
{
return $reslut;
}
}
/**
*给一个sql语句,返回关联的二维数组
*@param string $sql 用户指定的sql语句
*@param int $type 用户给的语句类型,0代表增删改,1代表查询
*@return 返回查询的结果,如果是查询返回二维数组,如果是增删改返回true或false
*/
function GuanQuery($sql,$type=1)
{
//造连接对象
$db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
//执行sql语句
$reslut = $db->query($sql);
//取数据
if($type==1)
{
$attr = array();
while($a = $reslut->fetch_assoc())
{
$attr[] = $a;
}
return $attr;
}
else
{
return $reslut;
}
}
/**
*给一个sql语句,返回字符串
*@param string $sql 用户指定的sql语句
*@param int $type 用户给的语句类型,0代表增删改,1代表查询
*@return 返回查询的结果,如果是查询返回字符串,如果是增删改返回true或false
*/
function StrQuery($sql,$type=1)
{
//造连接对象
$db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
//执行sql语句
$reslut = $db->query($sql);
//取数据
if($type==1)
{
$attr = $reslut->fetch_all();
$str="";
foreach($attr as $v)
{
$str .= implode("^",$v);
$str .="|";
}
return substr($str,0,strlen($str)-1);
}
else
{
return $reslut;
}
}
}
第2步:引用类
<!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
include("DBDA.class.php");//将封装的类引入此页面
$db = new DBDA();//新建一个对象
$sql = "select * from info";
var_dump($db->StrQuery($sql));//第2个参数不写的话就是查询,因为默认值是1.
//$sql = "update info set name='杨宁波' where code='p001'";
//var_dump($db->Query($sql,0));
//一个字符串里面包含查到的所有的数据
?>
</body>
</html>