一个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实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
Oct 09 PHP
php empty()与isset()区别的详细介绍
Jun 17 PHP
CodeIgniter CLI模式简介
Jun 17 PHP
php中实现用数组妩媚地生成要执行的sql语句
Jul 10 PHP
php文件上传你必须知道的几点
Oct 20 PHP
php使用timthumb生成缩略图的方法
Jan 22 PHP
深入分析PHP优化及注意事项
Jul 04 PHP
php集成动态口令认证
Jul 21 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
Mar 13 PHP
PHP实现webshell扫描文件木马的方法
Jul 31 PHP
thinkphp5引入公共部分header、footer的方法详解
Sep 14 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 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生成随机密码的三种方法小结
2010/09/04 PHP
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
PHP生成Gif图片验证码
2013/10/27 PHP
php图片缩放实现方法
2014/02/20 PHP
PHP生成网站桌面快捷方式代码分享
2014/10/11 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
Canvas 制作动态进度加载水球详解及实例代码
2016/12/09 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
python 域名分析工具实现代码
2009/07/15 Python
解析Python中的二进制位运算符
2015/05/13 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
《尊严》教学反思
2014/02/11 职场文书
渔夫的故事教学反思
2014/02/14 职场文书
供用电专业求职信
2014/07/07 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
Python pygame实现中国象棋单机版源码
2021/06/20 Python