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 用数组降低程序的时间复杂度
Dec 04 PHP
php Smarty模板生成html文档的方法
Apr 12 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
Jun 24 PHP
php中url传递中文字符,特殊危险字符的解决方法
Aug 17 PHP
Smarty模板学习笔记之Smarty简介
May 20 PHP
2014年10个最佳的PHP图像操作库
Jul 14 PHP
ThinkPHP跳转页success及error模板实例教程
Jul 17 PHP
php代码检查代理ip的有效性
Aug 19 PHP
php微信公众平台示例代码分析(二)
Dec 06 PHP
PHP计算近1年的所有月份
Mar 13 PHP
TP5框架实现的数据库备份功能示例
Apr 05 PHP
PHP序列化和反序列化深度剖析实例讲解
Dec 29 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+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
PHP Document 代码注释规范
2009/04/13 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
JavaSript中变量的作用域闭包的深入理解
2014/05/12 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
微信端开发--登录小程序步骤
2017/01/11 Javascript
JS实现页面打印功能
2017/03/16 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
ZK中使用JS读取客户端txt文件内容问题
2019/11/07 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
Python常用内置函数总结
2015/02/08 Python
python3编码问题汇总
2016/09/06 Python
Python_LDA实现方法详解
2017/10/25 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
什么是python的函数体
2020/06/19 Python
浅谈TensorFlow之稀疏张量表示
2020/06/30 Python
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
来自世界各地的优质葡萄酒:VineShop24
2018/07/09 全球购物
杭州联环马网络笔试题面试题
2013/08/04 面试题
大学生村官工作总结2015
2015/04/09 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
给朋友的赠语
2015/06/23 职场文书
团支部书记竞选稿
2015/11/21 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
经销商会议开幕词
2016/03/04 职场文书