一个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;&amp;mysql)三
Oct 09 PHP
使用php来实现网络服务
Sep 15 PHP
php 错误处理经验分享
Oct 11 PHP
php 文件上传实例代码
Apr 19 PHP
PHP 观察者模式的实现代码
May 10 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
Feb 24 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
PHP调用.NET的WebService 简单实例
Mar 27 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
PHP多维数组指定多字段排序的示例代码
May 16 PHP
Yii2.0实现的批量更新及批量插入功能示例
Jan 29 PHP
PHP date_default_timezone_set()设置时区操作实例分析
May 16 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
如何在PHP中使用正则表达式进行查找替换
2013/06/13 PHP
codeigniter框架批量插入数据
2014/01/09 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
php判断是否连接上网络的方法实例详解
2016/12/14 PHP
Yii框架安装简明教程
2020/05/15 PHP
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
2017/12/24 jQuery
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
Python基础之函数用法实例详解
2014/09/10 Python
几种实用的pythonic语法实例代码
2018/02/24 Python
Python 读取指定文件夹下的所有图像方法
2018/04/27 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
python解析含有重复key的json方法
2019/01/22 Python
基于Python实现剪切板实时监控方法解析
2019/09/11 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
pytorch-RNN进行回归曲线预测方式
2020/01/14 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
super关键字的用法
2012/04/10 面试题
《小动物过冬》教学反思
2014/04/17 职场文书
2015年防汛工作总结
2015/05/15 职场文书
Redis Cluster集群动态扩容的实现
2021/07/15 Redis