phpwind中的数据库操作类


Posted in PHP onJanuary 02, 2007

<?php
/*来源:phpwind.net*/

Class DB {
var $query_num = 0;

function DB($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) {
$this->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
}
function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0) {
$pconnect==0 ? @mysql_connect($dbhost, $dbuser, $dbpw) : @mysql_pconnect($dbhost, $dbuser, $dbpw);
mysql_errno()!=0 && $this->halt("Connect($pconnect) to MySQL failed");
if($this->server_info() > '4.1' && $GLOBALS['charset']){
mysql_query("SET NAMES '".$GLOBALS['charset']."'");
}
if($this->server_info() > '5.0'){
mysql_query("SET sql_mode=''");
}
if($dbname) {
if (!@mysql_select_db($dbname)){
$this->halt('Cannot use database');
}
}
}
function close() {
return mysql_close();
}
function select_db($dbname){
if (!@mysql_select_db($dbname)){
$this->halt('Cannot use database');
}
}
function server_info(){
return mysql_get_server_info();
}
function query($SQL,$method='') {
$GLOBALS['PW']=='pw_' or $SQL=str_replace('pw_',$GLOBALS['PW'],$SQL);
if($method=='U_B' && function_exists('mysql_unbuffered_query')){
$query = mysql_unbuffered_query($SQL);
}else{
$query = mysql_query($SQL);
}
$this->query_num++;

//echo $SQL.'<br>'.$this->query_num.'<br>';
if (!$query)  $this->halt('Query Error: ' . $SQL);
return $query;
}

function get_one($SQL){

$query=$this->query($SQL,'U_B');

$rs =& mysql_fetch_array($query, MYSQL_ASSOC);

return $rs;
}

function pw_update($SQL_1,$SQL_2,$SQL_3){
$rt=$this->get_one($SQL_1);
if($rt){
$this->update($SQL_2);
} else{
$this->update($SQL_3);
}
}

function update($SQL) {
$GLOBALS['PW']=='pw_' or $SQL=str_replace('pw_',$GLOBALS['PW'],$SQL);
if($GLOBALS['db_lp']==1){
if(substr($SQL,0,7)=='REPLACE'){
$SQL=substr($SQL,0,7).' LOW_PRIORITY'.substr($SQL,7);
} else{
$SQL=substr($SQL,0,6).' LOW_PRIORITY'.substr($SQL,6);
}
}
if(function_exists('mysql_unbuffered_query')){
$query = mysql_unbuffered_query($SQL);
}else{
$query = mysql_query($SQL);
}
$this->query_num++;

//echo $SQL.'<br>'.$this->query_num.'<br>';

if (!$query)  $this->halt('Update Error: ' . $SQL);
return $query;
}

function fetch_array($query, $result_type = MYSQL_ASSOC) {
return mysql_fetch_array($query, $result_type);
}

function affected_rows() {
return mysql_affected_rows();
}

function num_rows($query) {
$rows = mysql_num_rows($query);
return $rows;
}

function free_result($query) {
return mysql_free_result($query);
}

function insert_id() {
$id = mysql_insert_id();
return $id;
}

function halt($msg='') {
require_once(R_P.'require/db_mysql_error.php');
new DB_ERROR($msg);
}
}
?>

PHP 相关文章推荐
用PHP实现验证码功能
Oct 09 PHP
删除html标签得到纯文本可处理嵌套的标签
Apr 28 PHP
php实现的九九乘法口诀表简洁版
Jul 28 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
Nov 22 PHP
php查询mssql出现乱码的解决方法
Dec 29 PHP
php实现的网络相册图片防盗链完美破解方法
Jul 01 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
CI框架常用方法小结
May 17 PHP
PHP树-不需要递归的实现方法
Jun 21 PHP
微信支付开发告警通知实例
Jul 12 PHP
PHP中Laravel 关联查询返回错误id的解决方法
Apr 01 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
PHP无限分类的类
Jan 02 #PHP
php你的验证码安全码?
Jan 02 #PHP
一个PHP操作Access类(PHP+ODBC+Access)
Jan 02 #PHP
一个用php实现的获取URL信息的类
Jan 02 #PHP
PHP 和 MySQL 开发的 8 个技巧
Jan 02 #PHP
Smarty结合Ajax实现无刷新留言本实例
Jan 02 #PHP
Ajax PHP分页演示
Jan 02 #PHP
You might like
php 处理上百万条的数据库如何提高处理查询速度
2010/02/08 PHP
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
PHP基本语法总结
2014/09/06 PHP
Yii核心验证器api详解
2016/11/23 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
JavaScript For Beginners(转载)
2007/01/05 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
2015/08/21 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
Python的函数嵌套的使用方法
2014/01/24 Python
Python中编写ORM框架的入门指引
2015/04/29 Python
5款非常棒的Python工具
2018/01/05 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
对Django中的权限和分组管理实例讲解
2019/08/16 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
Python序列类型的打包和解包实例
2019/12/21 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
C#公司笔试题
2014/03/28 面试题
正隆泰信息技术有限公司上机题
2012/06/14 面试题
物业客服专员岗位职责
2013/11/30 职场文书
项目副经理岗位职责
2013/12/30 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
南京青奥会口号
2014/06/12 职场文书
婚前协议书范本
2014/10/27 职场文书
个人年终总结结尾
2015/03/06 职场文书
红色经典观后感
2015/06/18 职场文书