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 相关文章推荐
关于文本留言本的分页代码
Oct 09 PHP
基于mysql的bbs设计(五)
Oct 09 PHP
PHP项目开发中最常用的自定义函数整理
Dec 02 PHP
php 数组使用详解 推荐
Jun 02 PHP
php实现处理输入转义字符的代码
Nov 08 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
使用YII2框架实现微信公众号中表单提交功能
Sep 04 PHP
php实现网页上一页下一页翻页过程详解
Jun 28 PHP
php扩展开发入门demo示例
Sep 23 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
Jan 23 PHP
PHP的重载使用魔术方法代码实例详解
Feb 26 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利用cookie实现自动登录的方法
2014/12/10 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
jquery实现动态添加附件功能
2018/10/23 jQuery
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
python实现redis三种cas事务操作
2017/12/19 Python
python程序封装为win32服务的方法
2021/03/07 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
Python request post上传文件常见要点
2020/11/20 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
STP协议的主要用途是什么?为什么要用STP
2012/12/20 面试题
JVM是一个编译程序还是解释程序
2012/09/11 面试题
电子专业毕业生自我鉴定
2014/01/22 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
超市国庆节促销方案
2014/02/20 职场文书
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
火箭队口号
2014/06/18 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
教育教学读书笔记
2015/07/02 职场文书
大学生暑期实践报告
2015/07/13 职场文书
岗位聘任协议书
2015/09/21 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS