一个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 相关文章推荐
计算2000年01月01日起到指定日的天数
Oct 09 PHP
PHP读取目录下所有文件的代码
Jan 07 PHP
PHP代码审核的详细介绍
Jun 13 PHP
php中jpgraph类库的使用介绍
Aug 08 PHP
php判断类是否存在函数class_exists用法分析
Nov 14 PHP
使用PHP如何实现高效安全的ftp服务器(一)
Dec 20 PHP
php文件上传的两种实现方法
Apr 04 PHP
thinkPHP分页功能实例详解
May 05 PHP
一个非常实用的php文件上传类
Jul 04 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
Jun 22 PHP
php下的原生ajax请求用法实例分析
Feb 28 PHP
imagettftext() 失效,不起作用
Mar 09 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
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
在PHP中使用curl_init函数的说明
2010/11/02 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
js下将字符串当函数执行的方法
2011/07/13 Javascript
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
2012/05/30 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
微信小程序文字显示换行问题
2019/07/28 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
python reduce 函数使用详解
2017/12/05 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
Python字符串三种格式化输出
2020/09/17 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
女士鞋子、包包和服装在线,第一款10美元:ShoeDazzle
2019/07/26 全球购物
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
成语的广告词
2014/03/19 职场文书
校园文明倡议书
2014/05/16 职场文书
个人收入证明范本
2014/09/18 职场文书
干部年终考核评语
2015/01/04 职场文书
留学推荐信中文范文
2015/03/26 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
完美处理python与anaconda环境变量的冲突问题
2021/04/07 Python
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers