<? //很好用的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); } } ?> 摘自:中华黑客联盟--云南分站 |