很好用的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 相关文章推荐
cache_lite试用
Feb 14 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
Jun 18 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
Jul 02 PHP
浅析PHP的ASCII码转换类
Jul 05 PHP
PHP资源管理框架Assetic简介
Jun 12 PHP
微信公众平台开发关注及取消关注事件的方法
Dec 23 PHP
php rsa加密解密使用详解
Jan 14 PHP
php链表用法实例分析
Jul 09 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
微信公众号开发客服接口实例代码
Oct 21 PHP
PHP有序表查找之插值查找算法示例
Feb 10 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中文分词 自动获取关键词介绍
2012/11/13 PHP
php实现单链表的实例代码
2013/03/22 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
php 魔术方法详解
2014/11/11 PHP
php实现的验证码文件类实例
2015/06/18 PHP
PHP利用APC模块实现大文件上传进度条的方法
2015/10/29 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
javascript放大镜效果的简单实现
2013/12/09 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
vue 实现走马灯效果
2019/10/28 Javascript
[06:04]DOTA2英雄梦之声Vol19卓尔游侠
2014/06/20 DOTA
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[01:20]PWL开团时刻DAY9——听说潮汐没用?
2020/11/10 DOTA
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
python实现批量监控网站
2016/09/09 Python
关于django 数据库迁移(migrate)应该知道的一些事
2018/05/27 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
对python生成业务报表的实例详解
2019/02/03 Python
python多线程实现TCP服务端
2019/09/03 Python
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
高中生的自我鉴定范文
2014/01/24 职场文书
医学专业应届生的自我评价
2014/02/28 职场文书
有趣的广告词
2014/03/18 职场文书
《充气雨衣》教学反思
2014/04/07 职场文书
Python实现byte转integer
2021/06/03 Python
MySQL8.0无法启动3534的解决方法
2021/06/03 MySQL
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android