对常用的mysql代码封装 主要包括: 1、执行INSERT,DELETE,UPDATE,返回受影响行 2、执行INSERT语句,返回自增标识 3、执行SELECT语句,返回结果集 4、执行SEELCT语句,返回第一行第一列值 注意
主要包括:
1、执行INSERT,DELETE,UPDATE,返回受影响行
2、执行INSERT语句,返回自增标识
3、执行SELECT语句,返回结果集
4、执行SEELCT语句,返回第一行第一列值
注意:!执行失败,都会throw错误信息。。所有方法都含有PDO版本,因此还有如下PDO操作
5、PDOBindParameter绑定参数
6、PDOPrepare
等等。。
对PHP分页功能封装(需要JQuery支持)
简单的对分页功能进行了封装,方便查询,可以根据条件实现分页
1. [文件] SqlHelper.class.php ~ 7KB 下载(15)
<?php
include_once("Config.class.php");//加载配置文件
class SqlHelper{
/* mysql连接信息 */
private $hostname = null;
private $port = null;
private $username = null;
private $userpwd = null;
private $dbName = null;
//PDO对象stmt
private $PDO = null;
//数据库连接对象
private $conn = null;
//构造函数
function SqlHelper(){
$config = new Config();
$SQLIni = $config->mysqlConfig;
$this->hostname = $SQLIni['hostname'];
$this->port = $SQLIni['port'];
$this->username=$SQLIni['username'];
$this->userpwd = $SQLIni['userpwd'];
$this->dbName = $SQLIni['dbName'];
}
/*************************************** 普通 开始 ********************************/
//打开连接
public function Open(){
try{
$this->conn = new mysqli($this->hostname, $this->username, $this->userpwd, $this->dbName,$this->port);
$this->conn->query('set names utf8');
} catch(Exception $ex) {
die("连接失败1:".iconv("gbk","utf-8",$this->conn->connect_error));
}
}
//关闭连接
public function Close(){
if($this->conn != null) {
$this->conn->close();
}
}
//执行SELECT语句,返回结果集
public function ExecuteReader($sql){
$this->Open();
$result = $this->conn->query($sql);
if($result === false){
//执行失败
$error = $this->conn->error;
$this->Dispose($result);
$this->Close();
throw new Exception($error,0);
} else {
//执行成功
$resArr = array();
while($row = $result->fetch_assoc()){
$resArr[] = $row;
}
$this->Dispose($result);
$this->Close();
return $resArr;
}
}
//执行SELECT语句,返回首行首列
public function ExecuteScalar($sql){
$this->Open();
$result = $this->conn->query($sql);
if($result === false){
//执行失败
$error = $this->conn->error;
$this->Close();
throw new Exception($error,0);
} else {
$row = $result->fetch_row();
$this->Dispose($result);
$this->Close();
//判断是否有结果集
if($row == null){
return null;
}
return $row[0];
}
}
//执行INSERT,UPDATE,DELETE语句。
public function ExecuteNonQuery($sql){
$this->Open();
$result = $this->conn->query($sql);
if($result === false) {//执行失败
//提取错误信息
$error = $this->conn->error;
$this->Close();
throw new Exception($error,0);
} else {//执行成功
//返回受影响行
$ret = $this->conn->affected_rows;
$this->Close();
return $ret;
}
}
//执行INSERT返回自增列。
public function ExecuteReaderIndex($sql){
$this->Open();
$result = $this->conn->query($sql);
if($result === false) {//执行失败
//提取错误信息
$error = $this->conn->error;
$this->Close();
throw new Exception($error,0);
} else {//执行成功
//返回自增编号
$ret = $this->conn->insert_id;
$this->Close();
return $ret;
}
}
//释放结果集
public function Dispose($result) {
if($result === false || $result == null){
return;
}
$result->free();
}
/*************************************** 普通 结束 ********************************/
/*************************************** PDO 开始 ********************************/
//PDO打开
public function PDOOpen(){
$dsn = "mysql:dbname=".$this->dbName.";host=".$this->hostname.";port=".$this->port;
try {
$this->conn = new PDO($dsn, $this->username,$this->userpwd);
} catch(PDOException $e) {
die('<br />不能连接到数据库:<br/>' . $e);
}
}
//PDO关闭
public function PDOClose(){
$this->PDO->closeCursor();
}
//PDO生成预编译
public function PDOPrepare($sql){
$this->PDOOpen();
$this->PDO = $this->conn->prepare($sql);
}
//PDO绑定预编译参数
public function PDOBindParameter($paramStrng,$paramValue){
$this->PDO->bindValue($paramStrng,$paramValue);
}
//PDO执行INSERT,DELETE,UPDASTE查询,返回影响行
public function PDOExecuteNonQuery(){
//获取查询结果集
$result = $this->PDO->execute();
//判断执行是否成功
if($result === false){//执行失败
//执行失败
$error = $this->PDO->errorInfo();//获取错误信息息
$this->PDOClose();//关闭PDO
throw new Exception($error[0] . "|" . $error[1] . "|" . $error[2], 0); //拼接错误信息
} else {//执行成
//记录受影响的行
$retValue = $this->PDO->rowCount();
$this->PDOClose();//关闭
return $retValue;//返回影响行
}
}
//PDO执行SELECT查询,返回结果集
public function PDOExecuteReader(){
$result = $this->PDO->execute();
if($result === false){
//执行失败
$error = $this->PDO->errorInfo();//获取错误信息
$this->PDOClose();//关闭PDO
throw new Exception($error[0] . "|" . $error[1] . "|" . $error[2], 0); //拼接错误信息
} else {
$arr = array();
while($row = $this->PDO->fetch(PDO::FETCH_ASSOC)){
$arr[] = $row;
}
$this->PDOClose();
return $arr;
}
}
//PDO执行SELECT查询,返回首行首列
public function PDOExecuteScalar(){
$result = $this->PDO->execute();
if($result === false){
//执行失败
$error = $this->PDO->errorInfo();//获取错误信息
$this->PDOClose();//关闭PDO
throw new Exception($error[0] . "|" . $error[1] . "|" . $error[2], 0); //拼接错误信息
} else {
$row = $this->PDO->fetch(PDO::FETCH_COLUMN);
$this->PDOClose();
if($row === false){
return null;
}
return $row;
}
}
//PDO执行INSERT,返回自增ID
public function PODExecuteReaderIndex(){
$result = $this->PDO->execute();
if($result === false){ //执行失败
//提取错误信息
$error = $this->PDO->errorInfo();//获取错误信息
$this->PDOClose();//关闭PDO
throw new Exception($error[0] . "|" . $error[1] . "|" . $error[2], 0); //拼接错误信息
} else {
//记录自增编号
$retValue = $this->conn->lastInsertId();
$this->PDOClose();
return $retValue;
}
}
/*************************************** PDO 结束 ********************************/
/*************************************** Transaction 开始 ********************************/
//开启事务
public function BeginTrans(){
$this->ExecuteNonQuery("BEGIN");
}
//提交事务
public function CommitTrans(){
$this->ExecuteNonQuery("COMMIT");
}
//回滚
public function RollbackTrans(){
$this->ExecuteNonQuery("ROLLBACK");
}
/*************************************** Transaction 结束 ********************************/
}
?>
2. [文件] Config.class.php ~ 424B 下载(9)
<?php
class Config {
/*MySQL 配置信息*/
public $mysqlConfig = array(
'hostname' => 'localhost',
'port' => '3306',
'username' => 'root',
'userpwd' => 'root',
'dbName' => 'test'
);
/*分页配置*/
public $pageConfig = array(
"pageSize" => 20,
"pageNow" => 1
);
/*Exception*/
public $ExceptionConfig = array(
);
}
?>
3. [文件] Fenye.class.php ~ 5KB 下载(11)
<?php
require_once("../SqlHelper.class.php");
class Fenye{
private $pageSize = null; //分页大小
private $pageNow = null; //当前页面
private $pageCount = null; //总页数
private $dataCount = null; //数据总数
private $condition = null; //限制条件
private $sqlHelper = null; //数据库操作对象
private $arrList = null; //数据集
private $tbName = null; //表名
private $customParameter = null; //自定义参数
//分页构造函数 当前页,页面大小,表名,限定条件
function Fenye($pageNow,$pageSize,$tbName,$condition) {
$this->pageNow = $pageNow; //记录当前页
$this->pageSize = $pageSize; //分页大小
$this->tbName = $tbName; //表名
$this->condition = $condition; //限制条件
$this->sqlHelper = new SqlHelper(); //数据库操作对象
$this->setPageCount(); //赋值总页数
$this->setArrList(); //赋值数据集
}
//赋值总页数
private function setPageCount(){
$sql = "SELECT COUNT(*) FROM ".$this->tbName." ".$this->condition;
$dataCount = $this->sqlHelper->ExecuteScalar($sql);
$this->dataCount = $dataCount;
$this->pageCount = ceil($dataCount / $this->pageSize);
}
//赋值自定义参数
public function setParameter($param){
$this->customParameter = $param;
}
//赋值数据集
private function setArrList(){
$sql = "SELECT * FROM ".$this->tbName." ".$this->condition." LIMIT ".($this->pageSize * ($this->pageNow - 1)).",".$this->pageSize;
$this->arrList = $this->sqlHelper->ExecuteReader($sql);
}
//读取数据信息
public function getArrList(){
return $this->arrList;
}
//读取总分页数
public function getPageCount(){
return $this->pageCount;
}
//读取当前页
public function getPageNow(){
return $this->pageNow;
}
//读取页面大小
public function getPageSize(){
return $this->getPageSize();
}
//读取总数据数量
public function getListCount(){
return $this->dataCount;
}
//获取自定义参数
public function getParameter(){
return $this->customParameter;
}
private $firstUrl = ""; /* 首页url */
private $backUrl = ""; /* 上一页url */
private $nextUrl = ""; /* 下一页url */
private $lastUrl = ""; /* 尾页url */
//当前页,最多显示页码,跳转的页面
public function getPageHTML($url,$numCount,$condent){
//首页,上一页
if($this->pageNow == 1){
$this->firstUrl = '<li class="text">首页</li>'."\r\n";
$this->backUrl = '<li class="text">上一页</li>'."\r\n";
}else{
$this->firstUrl = '<li class="text"><a href="'.$url.'?pageNow=1'.$condent.'">首页</a></li>'."\r\n";
$this->backUrl = '<li class="text"><a href="'.$url.'?pageNow='.($this->pageNow - 1). $condent . '">上一页</a></li>'."\r\n";
}
//数字开头
$pageNumStart = '<div class="pageList">'."\r\n".'<ul>'."\r\n";
//数字中间部分
$pageNumCont = "";
//数字尾部
$pageNumEnd = '</ul>'."\r\n".'</div>'."\r\n";
$mindPage = floor($numCount / 2);
for($i = $this->pageNow - $mindPage; $i <= $this->pageNow + $mindPage; $i++){
if($i < 1 || $i > $this->pageCount)
continue;
if($i == $this->pageNow){
$pageNumCont .= ('<li class="pageNow">'. $i . '</li>' . "\r\n");
} else {
$pageNumCont .= ('<li><a href="' . $url . '?pageNow=' . $i . $condent . '">' . $i . '</a></li>' . "\r\n");
}
}
//下一页,尾页
if($this->pageNow == $this->pageCount){
$this->lastUrl = '<li class="text">尾页</li>'."\r\n";
$this->nextUrl = '<li class="text">下一页</li>'."\r\n";
}else{
$this->lastUrl = '<li class="text"><a href="'.$url.'?pageNow='.$this->pageCount.$condent.'">尾页</a></li>'."\r\n";
$this->nextUrl = '<li class="text"><a href="'.$url.'?pageNow='.($this->pageNow +1 ).$condent.'">下一页</a></li>'."\r\n";
}
$pageInfo = "<li>第".$this->pageNow."页 / 共".$this->pageCount."页</li>";
$pageGo = '<li>跳至<input type="text" id="pageNow" name="pageNow" class="gopageText" />页<input type="submit" class="gopageBtn" value="GO" /></li>';
$html = $pageNumStart .$this->firstUrl.$this->backUrl. $pageNumCont .$this->nextUrl.$this->lastUrl. $pageGo. $pageInfo. $pageNumEnd;
return $html;
}
}
?>
4. [文件] Fenye.css ~ 1KB 下载(10)
/* CSS Document */
.pageList {
padding:0px;
width:1024px;
margin:0px auto;
overflow:hidden;
}
.pageList ul {
overflow:hidden;
}
.pageList ul,li {
list-style:none;
margin:0px;
padding:0px;
}
.pageList ul li {
text-align:center;
float:left;
border:solid 1px #CCC;
margin-right:6px; /* 间隔大小 */
height:22px; /* 整体高度 */
min-width:22px; /* 每个宽度 */
line-height:22px; /* 整体高度 */
font-size:12px; /* 数字大小 */
color:#000; /* 字体颜色 */
}
.pageList ul li:last-child {
margin-right:0px;
}
.pageList ul li.text {
padding:0px 2px;
}
.pageList ul li.pageNow {
background:#CCC; /* 当前页背景色 */
}
.pageList ul li a {
text-decoration:none;
color:#000;
}
.pageList ul li a:hover {
text-decoration:underline;
color:Blue;
font-weight:bold;
}
.pageList ul li .gopageText {
width:32px;
height:17px;
margin:0px 2px;
padding:0px;
}
.pageList ul li .gopageBtn {
width:25px;
height:23px;
font-size:10px;
margin:0px;
margin-left:6px;
padding:0px;
}
5. [文件] Fenye.js ~ 752B 下载(8)
// JavaScript Document
/* 所有方法 需要JQuery支持 */
$(this).ready(function(e) {
var borderWidth = 1; /* border的宽度(px) */
var marginRight = 6; /* margin-right像素(px) */
var padding = 2; /* 文本内边距 */
//读取所有的页码
var liList = $(".pageList ul li");
//宽度总和
var widthSum = 0;
//读取每一个宽度
for(var i = 0; i < liList.length; i++){
widthSum += liList.eq(i).width()+ (borderWidth * 2);
}
//添加间隔像素
widthSum += (marginRight * (liList.length - 1));
//内边距 最后一个+4用于字体变粗产生的宽度变化
widthSum += 2 * 2 * 4 + 3;
//宽度赋值
$(".pageList ul").width(widthSum);
$(".pageList ul").css("margin","0px auto");
});
