一个php Mysql类 可以参考学习熟悉下


Posted in PHP onJune 21, 2009
<?php 
class Mysql 
{ 
private $conn; 
private $host; 
private $username; 
private $password; 
private $dbname; 
private $pconnect; 
private $charset; public function __construct(array $params = null) 
{ 
if (!empty($params)) { 
foreach ($params as $k => $v) { 
$this->$k = $v; 
} 
} 
} 
public function connect() 
{ 
$fun = $this->pconnect ? 'mysql_pconnect' : 'mysql_connect'; 
$this->conn = $fun($this->host, $this->username, $this->password); 
$this->conn && $this->query('set names ' . $this->charset); 
$this->conn && mysql_select_db($this->dbname, $this->conn); 
} 
public function getInstance() 
{ 
return $this->conn; 
} 
public function query($sql) 
{ 
return mysql_query($sql, $this->conn); 
} 
public function fetchOne($sql) 
{ 
$data = $this->fetchRow($sql); 
return $data[0]; 
} 
public function fetchCol($sql) 
{ 
$tmp = $this->fetchAll($sql, MYSQL_NUM); 
foreach ($tmp as $v) { 
$data[] = $v[0]; 
} 
} 
public function fetchRow($sql) 
{ 
$result = $this->query($sql); 
$data = mysql_fetch_row($result); 
mysql_free_result($result); 
return $data; 
} 
public function fetchAssoc($sql) 
{ 
$result = $this->query($sql); 
$data = mysql_fetch_assoc($result); 
mysql_free_result($result); 
return $data; 
} 
public function fetchAll($sql, $type = MYSQL_ASSOC) 
{ 
$result = $this->query($sql); 
while ($tmp = mysql_fetch_array($result, $type)) { 
$data[] = $tmp; 
} 
return $data; 
} 
public function fetchPairs($sql) 
{ 
$result = $this->query($sql); 
while ($tmp = mysql_fetch_row($result)) { 
$data[$tmp[0]] = $tmp[1]; 
} 
return $data; 
} 
public function insert($table, array $bind) 
{ 
$cols = array(); 
$vals = array(); 
foreach ($bind as $col => $val) { 
$cols[] = $col; 
$vals[] = $val; 
unset($bind[$col]); 
} 
$sql = "INSERT INTO " 
. $table 
. ' (`' . implode('`, `', $cols) . '`) ' 
. 'VALUES (\'' . implode('\', \'', $vals) . '\')'; 
$stmt = $this->query($sql, $this->conn); 
$result = $this->affectedRows(); 
return $result; 
} 
public function getLastInsertId() 
{ 
return mysql_insert_id($this->conn); 
} 
public function affectedRows() 
{ 
return mysql_affected_rows($this->conn); 
} 
public function update($table, array $bind, $where = '') 
{ 
$set = array(); 
foreach ($bind as $col => $val) { 
$set[] = '`' . $col . "` = '" . $val . "'"; 
} 
$sql = "UPDATE `" 
. $table 
. '` SET ' . implode(', ', $set) 
. (($where) ? " WHERE $where" : ''); 
$stmt = $this->query($sql, array_values($bind)); 
$result = $this->affectedRows(); 
return $result; 
} 
public function delete($table, $where = '') 
{ 
/** 
* Build the DELETE statement 
*/ 
$sql = "DELETE FROM " 
. $table 
. (($where) ? " WHERE $where" : ''); 
/** 
* Execute the statement and return the number of affected rows 
*/ 
$stmt = $this->query($sql); 
$result = $stmt ? mysql_affected_rows($this->conn) : $stmt; 
return $result; 
} 
public function close() 
{ 
$this->conn && mysql_close($this->conn); 
} 
} 
?>
PHP 相关文章推荐
PHP中的array数组类型分析说明
Jul 27 PHP
PHP中的MYSQL常用函数(php下操作数据库必备)
Sep 12 PHP
PHP里的中文变量说明
Jul 23 PHP
基于PHP array数组的教程详解
Jun 05 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
php类自动加载器实现方法
Jul 28 PHP
yii数据库的查询方法
Dec 28 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
PHP array_reduce()函数的应用解析
Oct 28 PHP
php+ajax实现商品对比功能示例
Apr 13 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
discuz7 phpMysql操作类
Jun 21 #PHP
php 将bmp图片转为jpg等其他任意格式的图片
Jun 21 #PHP
ie6 动态缩略图不显示的原因
Jun 21 #PHP
PHP COOKIE设置为浏览器进程
Jun 21 #PHP
PHP 输出缓存详解
Jun 20 #PHP
php 图像函数大举例(非原创)
Jun 20 #PHP
PHP 类型转换函数intval
Jun 20 #PHP
You might like
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
ajax取消挂起请求的处理方法
2013/03/18 PHP
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
原生JS中slice()方法和splice()区别
2017/03/06 Javascript
JavaScript实现移动端轮播效果
2017/06/06 Javascript
JavaScript正则表达式简单实用实例
2017/06/23 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
Javascript三种字符串连接方式及性能比较
2019/05/28 Javascript
js中console在一行内打印字符串和对象的方法
2019/09/10 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
Javascript异步编程async实现过程详解
2020/04/02 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
收集的几个Python小技巧分享
2014/11/22 Python
Selenium(Python web测试工具)基本用法详解
2018/08/10 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
超市端午节活动方案
2014/01/23 职场文书
先进德育工作者事迹材料
2014/01/24 职场文书
乡镇2014法制宣传日活动总结
2014/11/01 职场文书
故意伤害罪辩护词
2015/05/21 职场文书
呐喊读书笔记
2015/06/30 职场文书
Golang 编译成DLL文件的操作
2021/05/06 Golang
警用民用对讲机找不同
2022/02/18 无线电