很好用的PHP数据库类

复制代码 代码如下:

  <?

  //很好用的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);

  }

  }

  ?>