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
PHP4实际应用经验篇(8)
Oct 09 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
Aug 15 PHP
使用淘宝IP库获取用户ip地理位置
Oct 27 PHP
sae使用smarty模板的方法
Dec 17 PHP
php获得用户ip地址的比较不错的方法
Feb 08 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
PHP+JavaScript实现无刷新上传图片
Feb 21 PHP
php实现评论回复删除功能
May 23 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
Oct 11 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
javascript new一个对象的实质
2010/01/07 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
Javascript读取cookie函数代码
2010/10/16 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
2014/01/11 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
jQuery中toggle()函数的使用实例
2015/04/17 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
2016/12/14 Javascript
JQuery元素快速查找与操作
2018/04/22 jQuery
微信小程序适配iphoneX的实现方法
2018/09/18 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
2019/01/31 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
Python类定义和类继承详解
2015/05/08 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
Python定时任务APScheduler原理及实例解析
2020/05/30 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
2020/09/21 Python
约瑟夫·特纳男装:Joseph Turner
2017/10/10 全球购物
俄罗斯连接商品和买家的在线平台:goods.ru
2020/11/30 全球购物
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
WebSphere 应用服务器都支持哪些认证
2013/12/26 面试题
管理部部长岗位职责
2013/12/05 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
2015年学校总务工作总结
2015/07/20 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
JavaScript前端面试扁平数据转tree与tree数据扁平化
2022/06/14 Javascript