博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
建立一个php 基础类
阅读量:4640 次
发布时间:2019-06-09

本文共 7518 字,大约阅读时间需要 25 分钟。

在些PHP文件的时候,一般首先都是要先写一下基础类:

主要包括以下几个方面:

1.服务器的链接:包括主机,用户名,密码

2.数据库的选择:要操作哪个数据库

3.字符集的设置:设置什么样的编码

4.查询数据库:4.1 包括查询所有数据;4.2 查询某一行数据 ;4.3 查询某一列数据;

5.数据库的添加:添加一行或多行数据

6.数据库的更新:更新一行或多行数据

7.数据库的删除:删除一行或多行数据

 

开始建立一个基础类Mysql:命名为Mysql.class.php

1 
dbHost = $_dbHost; 10 $this->dbUser = $_dbUser; 11 $this->dbPwd = $_dbPwd; 12 $this->dbName = $_dbName; 13 $link = $this->connect(); // 服务器连接 14 if($link){ 15 $this->selectDb(); //连接成功,则选择数据库 16 $this->setCode(); //连接成功,则设置字符集编码 17 }else{ 18 die(mysql_error()); // 连接失败,则显示数据库连接失败的信息 19 }; 20 }; 21 // mysql 语句执行方法 22 public function query($sql){ 23 return mysql_query($sql); 24 }; 25 // 数据库连接方法 26 public function connect(){ 27 return mysql_connect($this->dbHost,$this->dbUser,$this->dbPwd); 28 }; 29 // 数据库选择方法 30 public function selectDb(){ 31 mysql_select_db($this->dbName); 32 }; 33 // 字符集编码设置方法 34 public function setCode(){ 35 $this->query("set names utf8"); 36 }; 37 // 获取所有数据方法 38 public function getAll($sql){ 39 $res = $this->query($sql); // 查询数据库出来的数据,是一个资源类型的,所以必须使用函数进行转化, 40 // 一般有三个函数进行mysql数据库资源的数据转化:一个是 mysql_fetch_row() ,返回的是一个数字索引的数组,可以使用数字索引进行调用; 41 // 一个是mysql_fetch_assoc() ,返回的是关联索引的数字,只能使用关联索引进行调用,关联索引就是字段的数据变字段的名称 42 // 还有一个是mysql_fetch_array(),返回的是数字索引和关联索引组成的数组,所以可以使用数组索引进行调用,也可以使用关联索引进行调用;相当于mysql_fetch_row()和mysql_fetch_assoc()的集合 43 $list = array(); // 这里设定一个数组,用来接收从数据库中返回的数据, 44 // mysql_fetch_assoc()返回的是一个指针,每次只是返回一条数据,指针即指向返回的这条数据,当次条数据被返回以后,指针会指向下一条数据,当数据取完后,指针指向null 45 // 所以此处使用while进行循环 46 while($row = mysql_fetch_assoc($res)){ 47 $list[] = $row ; // 当不对数组设置索引,就进行赋值的话,会自动将赋值的项添加到数组的最后面 48 // array_push($list,$row); // array_push() 函数是对数组进行入栈处理,效果和 $list[] = $row 是一样的 49 }; 50 return $list; 51 }; 52 //获取一行数据 53 public function getRow($sql){ 54 $res = $this->query($sql); 55 //这里获取一行数据,不需要对数据进行数组处理,因为只有一行数据,所以可以直接返回 56 return mysql_fetch_assoc($res); 57 }; 58 // 获取某一列数据 59 public function getCol($sql){ 60 $res = $this->query($sql); 61 $row = mysql_fetch_assoc($res); 62 return $row[0]; 63 }; 64 public function delete($sql){ 65 // 删除数据,直接执行$sql 的删除语句就行了 66 $this->query($sql); 67 }; 68 69 //插入 70 // INSERT INTO message( title, content ) VALUES ( '星星', '小星星' ); 71 // 产品经理 ----> 痛点 72 /* 73 add( array( 74 'title' => '星星', 75 'content' => '小星星' 76 ), 'message' ); 77 */ 78 79 // 添加(或者说插入)数据一条数据:有两个参数,一个是需要插入的表,另一个是插入的数据,因为有可能是插入一个字段,也可能是插入两个或者多个字段, 80 // 所以使用数组来存档要插入的数据,这样,无论插入几个字段,都使用同一个方法就可以了 81 public function add($tbName,$data){ 82 $sql = "insert into {
$tbName} ("; 83 // implode() 将数组链接成字符串,explode() 84 $sql .= implode(",",array_keys($data))."values ("; 85 // 值要使用单引号括起来 86 $sql .= implode(",'",array_values($data))."')"; 87 return $this->query($sql); 88 }; 89 //数据一条数据:有三个参数,一个是需要更新的表,一个是更新的数据,另一个是更新条件 90 public function update($tbName,$data,$condition){ 91 $sql = "update {
$tbName} set"; 92 foreach($data as $key => $value){ 93 // 值$value 要使用单引号括起来 94 $sql .= {
$key}."='".{
$value}."',"; 95 } 96 // 但是这样处理的结果:是在语句的最后面多了一个逗号,例如以下语句 97 // UPDATE message SET title = 'hello', content = '你好', 98 // 既然多了一个逗号,那在最后把逗号去掉就可以了,使用substr(string,start,end)函数: 99 // 有三个参数,一个是要处理的字符串string,一个是起始位置start,一个是结束位置end 位置参数如果为负,则从右面开始算100 $sql = substr($sql,0,-1);101 $sql .= " ".$condition;102 return $this->query($sql);103 };104 }105 $mysql = new Mysql("localhost","root","root","message");106 ?>

 

写好了基础的类,就可以进行调用了

再写一个Msgmodel 类:

1 
db = $dbObj; 7 } 8 // 添加一条Msg数据 9 public function msgAdd($data){10 return $this->db->add($this->tbName,$data);11 }12 // 添加一条Msg 所有数据13 public function getMsgAll(){14 $sql = "SELECT * FROM {
$this->tbName} ORDER BY time DESC";15 return $this->db->getAll($sql);16 }17 18 // 获取Msg的所有条数19 public function getMsgCol(){20 $sql = "SELECT COUNT(*) FROM {
$this->tbName}";21 return $this->db->getCol($sql);22 }23 public function getMsgColBycatId($catId){24 if($catId == 0){25 return $this->getMsgCol();26 }else{27 $sql = "SELECT COUNT(*) FROM {
$this->tbName} WHERE cat_id = {
$catId}";28 return $this->db->getCol($sql);29 }30 31 }32 public function getMsgList($p,$pageSize){33 $sql = "SELECT * FROM {
$this->tbName} ORDER BY time DESC ";34 $sql .= " LIMIT ".($p-1)*$pageSize.",".$pageSize;35 36 return $this->db->getAll($sql);37 }38 public function getMsgListByCatId($p,$pageSize,$catId){39 if($catId==0){40 return $this->getMsgList($p,$pageSize);41 }else{42 $sql = "SELECT * FROM {
$this->tbName} ";43 $sql .="WHERE cat_id = {
$catId} ORDER BY time DESC ";44 $sql .= " LIMIT ".($p-1)*$pageSize.",".$pageSize;45 return $this->db->getAll($sql);46 }47 }48 public function getMsgById($msgId){49 $sql = "SELECT * FROM {
$this->tbName} WHERE message_id = $msgId";50 return $this->db->getRow($sql);51 }52 public function getMsgRandId(){53 $sql = "SELECT * FROM {
$this->tbName} ORDER BY RAND() LIMIT 1";54 $row = $this->db->getRow($sql);55 return $row['message_id'];56 }57 public function getPrevMsgId($msgId){58 $sql = "SELECT * FROM {
$this->tbName} WHERE message_id < {
$msgId}";59 $sql .= " ORDER BY message_id DESC LIMIT 1";60 $row = $this->db->getRow($sql);61 return $row['message_id'];62 }63 public function getNextMsgId($msgId){64 $sql = "SELECT * FROM {
$this->tbName} WHERE message_id > {
$msgId}";65 $sql .= " ORDER BY message_id ASC LIMIT 1";66 $row = $this->db->getRow($sql);67 return $row['message_id'];68 }69 public function getMinMsgId(){70 $sql = "SELECT * FROM {
$this->tbName} ORDER BY message_id ASC LIMIT 1";71 $row = $this->db->getRow($sql);72 return $row['message_id'];73 }74 public function getMaxMsgId(){75 $sql = "SELECT * FROM {
$this->tbName} ORDER BY message_id DESC LIMIT 1";76 $row = $this->db->getRow($sql);77 return $row['message_id'];78 }79 80 }81 ?>

 

转载于:https://www.cnblogs.com/huanying2015/p/8414094.html

你可能感兴趣的文章
object-c中管理文件和目录:NSFileManager使用方法
查看>>
Kibana:分析及可视化日志文件
查看>>
nodejs pm2使用
查看>>
cocos2d-x 3.10 PageView BUG
查看>>
装饰器的基本使用:用户登录
查看>>
CSS选择器总结
查看>>
mysql中sql语句
查看>>
head/tail实现
查看>>
sql语句的各种模糊查询语句
查看>>
vlc 学习网
查看>>
Python20-Day05
查看>>
Real World Haskell 第七章 I/O
查看>>
C#操作OFFICE一(EXCEL)
查看>>
【js操作url参数】获取指定url参数值、取指定url参数并转为json对象
查看>>
ABAP 程序间的调用
查看>>
移动端单屏解决方案
查看>>
web渗透测试基本步骤
查看>>
使用Struts2标签遍历集合
查看>>
angular.isUndefined()
查看>>
第一次软件工程作业(改进版)
查看>>