PHP数据库连接类:设定连接类型与字符集
"PHP经典分页类的实现及连接设置" 在PHP编程中,分页是网页数据展示中常见的功能,特别是在处理大量数据时,分页能够有效地提高用户体验。本资源介绍了一个经典的PHP分页类,它允许开发者设定连接类型和连接校对字符,以适应不同的数据库环境。 首先,我们来看一下类`db`的定义。这个类是用来处理数据库连接和查询操作的,它包含了几个重要的属性: - `$conn`:存储数据库连接资源。 - `$db`、`$user`、`$host`、`$unm`、`$pwd`:分别代表数据库名、用户名、主机名、用户名和密码,用于建立数据库连接。 - `$char`:字符集设置,用于指定数据库的编码。 - `$linkType`:连接类型,可以是`false`(默认)或使用`mysql_pconnect`进行持久连接。 在类的构造函数中,`$linkType`参数用于判断是否使用持久连接。如果`$linkType`为`true`,则使用`mysql_pconnect`;否则,使用`mysql_connect`。持久连接可以在多次请求之间保持连接,减少建立和关闭连接的开销。同时,构造函数还设置了字符集,通过`mysql_query("setnames ".$this->char);`来确保数据的正确读写。 类中包含的方法有: - `query($sql, $type="true")`:执行SQL查询。根据$type`的值,返回结果行数(对于SELECT语句)或受影响的行数(对于INSERT, UPDATE, DELETE等)。返回一个包含查询结果资源和行数的数组。 - `fetch($sql)`:对SQL查询结果进行遍历,将每一行数据转化为数组并存储到一个结果数组中,最后返回这个结果数组。 分页类通常会包含其他方法,如计算总页数、生成分页链接等。但在这个示例中,具体的分页逻辑并未给出。在实际应用中,你可以基于这个类添加这些功能,例如: - `totalPages($rows, $perPage)`:根据每页显示的记录数`$perPage`,计算总页数`$rows`。 - `generatePageLinks($currentPage, $totalPages, $baseUrl, $urlParams)`:生成分页链接,包括上一页、下一页和页码链接。 这个PHP分页类提供了一个基础的数据库连接和查询框架,开发者可以根据需要扩展其功能,实现完整的分页解决方案。需要注意的是,由于`mysql_*`系列函数已被弃用,建议使用PDO或mysqli扩展来替换,以提高代码的安全性和兼容性。
class db
{
public $conn,$db,$table,$user,$host,$unm,$pwd;
public $res;
public $char;
public $linkType;
function __construct($linkType=false,$char="gb2312")
{
$this->linkType=$linkType;//设定连接类型
$this->char=$char;//设定连接校对字符
$this->db=DB;
$this->user=USER;
$this->host=HOST;
$this->unm=UNM;
$this->pwd=PWD;
if($this->linkType)
{
$this->conn=mysql_pconnect($this->host,$this->unm,$this->pwd) or die("Database connection failure");
}
else
{
$this->conn=mysql_connect($this->host,$this->unm,$this->pwd) or die("Database connection failure");
}
mysql_select_db($this->db);
mysql_query("set names ".$this->char);
}
function query($sql,$type="true")
{
//$type:默认的操作。 指代select操作
$row=$type?mysql_num_rows($this->res):mysql_affected_rows();
$result["res"]=$this->res;
$result["row"]=$row;
return $result;
}
//fetch()方法:获取所有的记录,并写入数组
function fetch($sql)
{
$res=self::query($sql);
while ($rs=mysql_fetch_array($res["res"]))
{
$result[]=$rs;
}
return $result;
}
//获取下一条记录
function fetchNext($filed,$currenID,$table)
{
$sql="select * from $table where $filed>$currenID limit 0,1 ";
return self::fetch($sql);
}
//获取前一条记录
function fetchPre($filed,$currenID,$table)
{
$sql="select * from $table where $filed<$currenID limit 0,1 ";
return self::fetch($sql);
}
}
class page extends db
剩余5页未读,继续阅读
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 彩虹rain bow point鼠标指针压缩包使用指南
- C#开发的C++作业自动批改系统
- Java实战项目:城市公交查询系统及部署教程
- 深入掌握Spring Boot基础技巧与实践
- 基于SSM+Mysql的校园通讯录信息管理系统毕业设计源码
- 精选简历模板分享:简约大气,适用于应届生与在校生
- 个性化Windows桌面:自制图标大全指南
- 51单片机超声波测距项目源码解析
- 掌握SpringBoot实战:深度学习笔记解析
- 掌握Java基础语法的关键知识点
- SSM+mysql邮件管理系统毕业设计源码免费下载
- wkhtmltox下载困难?找到正确的安装包攻略
- Python全栈开发项目资源包 - 功能复刻与开发支持
- 即时消息分发系统架构设计:以tio为基础
- 基于SSM框架和MySQL的在线书城项目源码
- 认知OFDM技术在802.11标准中的项目实践