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 imagecreatetruecolor 创建高清和透明图片代码小结
May 15 PHP
php 缩略图实现函数代码
Jun 23 PHP
php操作JSON格式数据的实现代码
Dec 24 PHP
PHP Cookie的使用教程详解
Jun 03 PHP
深入php self与$this的详解
Jun 08 PHP
解析php中session的实现原理以及大网站应用应注意的问题
Jun 17 PHP
php 判断是否是中文/英文/数字示例代码
Sep 30 PHP
YII路径的用法总结
Jul 09 PHP
使用ob系列函数实现PHP网站页面静态化
Aug 13 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
laravel框架语言包拓展实现方法分析
Nov 22 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
PHP setTime 设置当前时间的代码
2012/08/27 PHP
PHP生成图像验证码的方法小结(2种方法)
2016/07/18 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
心扬JS分页函数代码
2010/09/10 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
jquery插件splitScren实现页面分屏切换模板特效
2015/06/16 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
vue配置文件实现代理v2版本的方法
2019/06/21 Javascript
js实现移动端tab切换时下划线滑动效果
2019/09/08 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
关于javascript中的promise的用法和注意事项(推荐)
2021/01/15 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
python实现的登录和操作开心网脚本分享
2014/07/09 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
Python 互换字典的键值对实例
2019/02/12 Python
django富文本编辑器的实现示例
2019/04/10 Python
Python restful框架接口开发实现
2020/04/13 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
瑞士网球商店:Tennis-Point
2020/03/12 全球购物
函授药学自我鉴定
2014/02/07 职场文书
授权委托书样本
2014/04/03 职场文书
师范毕业生求职信
2014/07/11 职场文书
医院护士工作检讨书
2014/10/26 职场文书
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android