很好用的PHP数据库类


Posted in PHP onMay 27, 2009
<? 
//很好用的PHP数据库类,三、四句代码搞定一个表的操作,无论这个表字段有多复杂。 
//此类多次大量用在大型网站程序的开发上,效果特别的好。 
//作者:快刀浪子++  
define(\"_PHP_RECORD_\",\"exists\"); 
class TRecord 
{ 
var $db; 
var $rc; 
var $name; 
var $value; 
var $num; 
var $buffer; //查询结果 调用方法 $buffer[$i][\"fields\"]; 
var $seekstr;
 //保存查询条件用 
function TRecord($host=\"localhost\",$user=\"root\",$passwd=\"\") 
{global $HTTP_POST_VARS; 
$this->num=0; 
$this->host=$host; 
$this->user=$user; 
$this->passwd=$passwd; 
if(($this->db=mysql_connect($host,$user,$passwd))==false) 
exit(\"联结数据库出错!\"); 

while(list($this->name[$this->num],$this->value[$this->num])=each($HTTP_POST_VARS)) 
{$this->num++; 
} 
////////////// 
for($i=0;$i<$this->num;$i++) 
{$this->value[$i]=$this->SafeString($this->value[$i]); 
} 
// 
} 
function SafeString($message) 
{$message=str_replace(\" \",\" \",$message); 
$message=str_replace(\"<\",\"<\",$message); 
$message=str_replace(\">\",\">\",$message); 
//$message=str_replace(\"|\",\"|\",$message); 
//$message=str_replace(\"\\"\",\""\",$message); 
//$message=nl2br($message); 
return $message; 
} 
////// 
function reset() 
{$this->num=0; 
$this->name=array(); 

 $this->value=array(); 
} 
function add($name,$values) 
{$this->name[$this->num]=$name; 

 $this->value[$this->num]=$values; 
$this->num++; 
} 
function unadd($name) 
{$j=0; 
for($i=0;$i<$this->num;$i++) 
{if($this->name[$i]!=$name) 
{$aaa[$j]=$this->name[$i]; 
$bbb[$j]=$this->value[$i]; 
$j++; 
} 
} 
$this->name=$aaa; 
$this->value=$bbb; 
$this->num=$j; 
} 
function InsertRecord($database,$table) 
{mysql_select_db($database); 
if($this->num==0) 
exit(\"没有定义变量!\"); 
$field=implode(\",\",$this->name); 
for($i=0;$i<$this->num;$i++) 
{if(is_string($this->value[$i])) 
$ls[$i]=\"\'\".$this->value[$i].\"\'\"; 
 else 
$ls[$i]=$this->value[$i]; 


 $value=implode(\",\",$ls);   
} 
$sql=sprintf(\"insert into %s(%s) values(%s)\",$table,$field,$value); 
if(mysql_query($sql,$this->db)==false) 
{echo \"写数据到数据库时出错:\".$sql; 
exit(); 
} 
} 
function SelectRecord($database,$table) //返回记录数,结果在缓冲区中 
{mysql_select_db($database); 


if($this->num==0) 
$sql=sprintf(\"select * from %s\",$table); 
 else 
{ 
for($i=0;$i<$this->num;$i++) 
{if(is_string($this->value[$i])) 
$ls[$i]=\"\'\".$this->value[$i].\"\'\"; 

 else 
$ls[$i]=$this->value[$i]; 
$str[$i]=sprintf(\"%s=%s\",$this->name[$i],$ls[$i]); 
} 
$string=implode(\" and \",$str); 
$this->seekstr=$string; 
$sql=sprintf(\"select * from %s where %s\",$table,$string); 
} 
if(($rc=mysql_query($sql,$this->db))==false) 
{echo \"查询数据库时出错:\".$sql; 
exit(); 
} 
$i=0; 
while($this->buffer[$i]=mysql_fetch_array($rc)) 
{ 
$i++; 
} 
mysql_free_result($rc); 
return $i; 
} 
function UpdateRecord($database,$table,$limitstr) 
{mysql_select_db($database); 
if($this->num==0) 
exit(\"没有定义变量!\"); 
for($i=0;$i<$this->num;$i++) 
{if(is_string($this->value[$i])) 
$ls[$i]=\"\'\".$this->value[$i].\"\'\"; 
 else 
$ls[$i]=$this->value[$i]; 
$upstr[$i]=$this->name[$i].\"=\".$ls[$i]; 
} 


$str=implode(\",\",$upstr); 
$sql=sprintf(\"update %s set %s where %s\",$table,$str,$limitstr); 
if(mysql_query($sql,$this->db)==false) 
{echo \"修改数据时出错:\".$sql; 
exit(); 
} 
} 
function addtip($database,$table,$fileds,$limitstr=\"\") 
{//必须为整型字段  
mysql_select_db($database); 
if($limitstr!=\"\") 
$sql=sprintf(\"update %s set %s=%s+1 where %s\",$table,$fileds,$fileds,$limitstr); 
 else 
$sql=sprintf(\"update %s set %s=%s+1\",$table,$fileds,$fileds); 
if(mysql_query($sql,$this->db)==false) 
{echo \"修改数据时出错:\".$sql; 
exit(); 
} 
} 
function unaddtip($database,$table,$fileds,$limitstr=\"\") 
{ 
mysql_select_db($database); 
if($limitstr!=\"\") 
$sql=sprintf(\"update %s set %s=%s-1 where %s\",$table,$fileds,$fileds,$limitstr); 
 else 
$sql=sprintf(\"update %s set %s=%s-1\",$table,$fileds,$fileds); 
if(mysql_query($sql,$this->db)==false) 
{echo \"修改数据时出错:\".$sql; 
exit(); 
} 
} 
function isempty($var,$china) 
{if(trim($var)==\"\") 
{ 
$reason=\"没有录入“\".$china.\"”!\"; 
exit($reason); 
} 
} 
function GetResult() 
{return $this->buffer; 
} 
function close() 
{ 
mysql_close($this->db); 
} 
} 
?>
PHP 相关文章推荐
php 判断访客是否为搜索引擎蜘蛛的函数代码
Jul 29 PHP
PHP获取用户的浏览器与操作系统信息的代码
Sep 04 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
Nov 12 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
php实现XSS安全过滤的方法
Jul 29 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
Sep 10 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
orm获取关联表里的属性值
Apr 17 PHP
CI框架整合widget(页面格局)的方法
May 17 PHP
PHP回调函数简单用法示例
May 08 PHP
PHP 实现 JSON 数据的编码和解码操作详解
Apr 22 PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 PHP
PHP XML备份Mysql数据库
May 27 #PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 #PHP
php 字符转义 注意事项
May 27 #PHP
php 字符过滤类,用于过滤各类用户输入的数据
May 27 #PHP
PHP的单引号和双引号 字符串效率
May 27 #PHP
php session 错误
May 21 #PHP
php print EOF实现方法
May 21 #PHP
You might like
PHP中对缓冲区的控制实现代码
2013/09/29 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
php mysql实现mysql_select_db选择数据库
2016/12/30 PHP
妙用Jquery的val()方法
2012/06/27 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
python实现中文输出的两种方法
2015/05/09 Python
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
关于python多重赋值的小问题
2019/04/17 Python
python根据时间获取周数代码实例
2019/09/30 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
Python如何实现定时器功能
2020/05/28 Python
Python实现SMTP邮件发送
2020/06/16 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
个人素质的自我评价分享
2013/12/16 职场文书
导游实习生自荐书
2014/01/28 职场文书
《长城》教学反思
2014/02/14 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
初婚初育证明范本
2015/06/18 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书
导游词之南京中山陵
2019/11/27 职场文书
Python包argparse模块常用方法
2021/06/04 Python
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
JS的深浅复制详细
2021/10/16 Javascript
Python 中的 copy()和deepcopy()
2021/11/07 Python
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL
Nginx 安装SSL证书完成HTTPS部署
2022/04/28 Servers