<?php
//该类是个工具类 是完成对数据库的操作
class SqlHelper{
//定义连接的变量
public $conn;
public $host="localhost";
public $user="root";
public $password="root";
public $dbname="empmanage";
//定义一个构造方法
public function __construct(){
//1.得到连接
$this->conn=mysql_connect($this->host,$this->user,$this->password);
//判断连接是否成功
if(!$this->conn){
die("连接失败".mysql_error());
}
//2.选择数据库
mysql_select_db($this->dbname,$this->conn) or die(mysql_error());
//3.设置访问数据库的编码方式
mysql_query("set names utf8");
}
//在这定义一个方法用来分页的 分页函数需要传递3个参数2个sql一个分页对象
//sql1是用来查找$rowPage就是有多少条数据 还
//sql2是用来你要查找的数据 select * from emp limit 0,3;
public function excute_dql_fenye($sql1,$sql2,$fenyePage){
//得到我们要的数据
$res1=mysql_query($sql1,$this->conn) or die(mysql_error());
//输出我们的数据 由于是一条不要while
if($row=mysql_fetch_row($res1)){
$fenyePage->rowCount=$row[0];
$fenyePage->pageCount=ceil($row[0]/$fenyePage->pageSize);
}
//释放资源
mysql_free_result($res1);
//通过sql2得到的结果集
$res2=mysql_query($sql2,$this->conn) or die(mysql_error());
//定义一个数组来接收结果集
$arr=array();
while($row=mysql_fetch_assoc($res2)){
$arr[]=$row;
}
//释放资源
mysql_free_result($res2);
//把arr中的数据传入到$fenyePage->res_arrary中
$fenyePage->res_array=$arr;
//把导航信息封装到fenyePage中
//设置上下页
$navigate="";
if($fenyePage->pageNow>1){
//说明有上一页
$prepage=$fenyePage->pageNow-1;
$navigate="<a href='{$fenyePage->gotoUrl}?pageNow=$prepage'>上一页</a> ";
}
if($fenyePage->pageNow<$fenyePage->pageCount){
//说明还有下一页
$nextpage=$fenyePage->pageNow+1;
$navigate.="<a href='{$fenyePage->gotoUrl}?pageNow=$nextpage'>下一页</a> ";
}
//这里用一个for循环打印
//要打印1-10 0*10+1 要用一个数学函数代替 11-20 floor(($pageNow-1)/10)*10+1
$page_whole=10;
$start=floor(($fenyePage->pageNow-1)/$page_whole)*$page_whole+1;
$index=$start;
//当1-10页时就没有这个翻页的链接
if($fenyePage->pageNow>$page_whole){
$navigate.= "<a href='{$fenyePage->gotoUrl}?pageNow=".($start-1)."'><<</a> ";
}
for(;$start<$index+$page_whole;$start++){
$navigate.= "<a href='{$fenyePage->gotoUrl}?pageNow=$start'>[$start]</a>";
}
$navigate.= "<a href='{$fenyePage->gotoUrl}?pageNow=$start'> >></a> ";
$navigate.= "现在是{$fenyePage->pageNow}页/总共{$fenyePage->pageCount}页";
$fenyePage->navigate=$navigate;
}
//定义一个执行dql语句的方法
public function excute_dql($sql){
//得到结果集
$res=mysql_query($sql,$this->conn) or die(mysql_error());
// 返回结果集
return $res;
}
//定义一个二维数组用于存放结果集
public function excute_dql2($sql){
//定义一个数组
$arr=array();
$res=mysql_query($sql,$this->conn) or die(mysql_error());
//把结果集放入到二维数组中去
$i=0;
while($row=mysql_fetch_assoc($res)){
$arr[]=$row;
$i++;
}
//这里就可以关闭资源 因为资源都放在数组里面了 所以这资源就不需要了
mysql_free_result($res);
return $arr;
}
//定义一个执行dml语句的方法
public function excute_dml($sql){
//得到一个布尔值
$b=mysql_query($sql,$this->conn) or die(mysql_error());
//判断语句是否执行成功 这里有三种情况
if(!$b){
//执行没有成功
return 0;
} else{
if(mysql_affected_rows($this->conn)>0){
//说明影响行数 执行成功
return 1;
}else{
return 2;//没有影响行数
}
}
}
//定义一个关闭连接的方法
public function close_connect(){
if(!empty($this->conn)){
//如果连接不为空 就关闭
mysql_close($this->conn);
}
}
}
?>
php工具类
最新推荐文章于 2022-10-21 14:37:02 发布