一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

支持php4、php5的mysql數據庫操作類

前端一直使用php5,的確使用起來特別的爽,現在為了能在俺的虛擬主機上跑,不得不改成php4的。這幾個庫類我以前發在phpCHIAN,地址是http://www.phpchina.com/bbs/viewthread.php?tid=5687&highlight=。(前幾天在網上搜索了下,發現很多轉載我的這幾篇文章都沒有說明出處,而且把我的版權都刪除了,氣暈了。)

    昨天改寫了數據庫操作類,恰好在我簡化zend Framework也能用到。

    代碼如下:


<?php
/**
* filename: DB_Mysql.class.php
* @package:phpbean
* @author :feifengxlq<[email]feifengxlq@gmail.com[/email]>
* @copyright :Copyright 2006 feifengxlq
* @license:version 1.2
* create:2006-5-30
* modify:2006-10-19 by feifengxlq
* description:the interface of mysql.

* example:
* ////////////Select action (First mode)//////////////////////////////
$mysql=new DB_Mysql("localhost","root","root","root");    
$rs=$mysql->query("select * from test");
for($i=0;$i<$mysql->num_rows($rs);$i++)
    $record[$i]=$mysql->seek($i);
print_r($record);
$mysql->close();
* ////////////Select action (Second mode)//////////////////////////////
 $mysql=new DB_Mysql("localhost","root","root","root");
 $rs=$mysql->execute("select * from test");
 print_r($rs);
 $mysql->close();
* /////////////insert action////////////////////////////
   $mysql=new DB_Mysql("localhost","root","root","root");    
   $mysql->query("insert into test(username) values('test from my DB_mysql')");
   printf("%s",$mysql->insert_id());
   $mysql->close();
*/
class mysql{

   /* private: connection parameters */
   var $host="localhost";
   var $database="";
   var $user="root";
   var $password="";

   /* private: configuration parameters */
   var $pconnect=false;
   var $debug=false;

   /* private: result array and current row number */
   var $link_id=0;
   var $query_id=0;
   var $record=array();

   /**
    * construct 
    *
    * @param string $host
    * @param string $user
    * @param string $password
    * @param string $database
    */
   function __construct($host="localhost",$user="root",$password="",$database="")
   {
       $this->set("host",$host);
       $this->set("user",$user);
       $this->set("password",$password);
       $this->set("database",$database);
       $this->connect();
   }

   /**
    * set the value for the param of this class
    *
    * @param string $var
    * @param string $value
    */
   function set($var,$value)
   {
       $this->$var=$value;
   }

   
   /**
    * connect to a mysql server,and choose the database.
    *
    * @param string $database
    * @param string $host
    * @param string $user
    * @param string $password
    * @return link_id
    */
   function connect($database="",$host="",$user="",$password="")
   {
       if(!empty($database))$this->set("database",$database);
       if(!empty($host))$this->set("host",$host);
       if(!empty($user))$this->set("user",$user);
       if(!empty($password))$this->set("password",$password);
       if($this->link_id==0)
       {
           if($this->pconnect)
              $this->link_id=@mysql_pconnect($this->host,$this->user,$this->password);
           else 
              $this->link_id=@mysql_connect($this->host,$this->user,$this->password);
           if(!$this->link_id)
              die("Mysql Connect Error in ".__FUNCTION__."():".mysql_errno().":".mysql_error());
           if(!@mysql_select_db($this->database,$this->link_id))
              die("Mysql Select database Error in ".__FUNCTION__."():".mysql_errno().":".mysql_error());
       }
       return $this->link_id;
   }

   /**
    * query a sql into the database
    *
    * @param string $strsql
    * @return query_id
    */
   function query($strsql="")
   {
       if(empty($strsql)) die("Mysql Error:".__FUNCTION__."() strsql is empty!");
       if($this->link_id==0) $this->connect();
       if($this->debug) printf("Debug query sql:%s",$strsql);
       $this->query_id=@mysql_query($strsql,$this->link_id);
       if(!$this->query_id) die("Mysql query fail,Invalid sql:".$strsql.".");
       return $this->query_id;
   }

   /**
    * query a sql into the database,while it is differernt from the query() method,
    * this method will return a record(array);
    *
    * @param string $strsql
    * @param string $style
    * @return $record is a array()
    */
   function Execute($strsql,$style="array")
   {
       $this->query($strsql);
       if(!empty($this->record))$this->record=array();
       $i=0;
       if($style=="array"){
           while ($temp=@mysql_fetch_array($this->query_id)) {
               $this->record[$i]=$temp;
               $i++;
           }
       }else{
           while ($temp=@mysql_fetch_object($this->query_id)) {
               $this->record[$i]=$temp;
               $i++;
           }
       }            
       unset($i);
       unset($temp);
       return $this->record;
   }

   /**
    * seek,but not equal to mysql_data_seek. this methord will return a list.
    *
    * @param int $pos
    * @param string $style
    * @return record
    */
   function seek($pos=0,$style="array")
   {
       if(!@mysql_data_seek($this->query_id,$pos))
           die("Error in".__FUNCTION__."():can not seek to row ".$pos."!");
       $result=@($style=="array")?mysql_fetch_array($this->query_id):mysql_fetch_object($this->query_id);
       if(!$result) die("Error in ".__FUNCTION__."():can not fetch data!");
       return $result;
   }
   /**
    * free the result of query
    *
    */
   function free()
   {
       if(($this->query_id)&($this->query_id!=0))@mysql_free_result($this->query_id);
   }

   /**
    * evaluate the result (size, width)
    *
    * @return num
    */
   function affected_rows()
   {
       return @mysql_affected_rows($this->link_id);
   }

   function num_rows()
   {
       return @mysql_num_rows($this->query_id);
   }

   function num_fields()
   {
       return @mysql_num_fields($this->query_id);
   }

   function insert_id()
   {
       return @mysql_insert_id($this->link_id);
   }

   function close()
   {
       $this->free();
       if($this->link_id!=0)@mysql_close($this->link_id);
       if(mysql_errno()!=0) die("Mysql Error:".mysql_errno().":".mysql_error());
   }

   function select($strsql,$number,$offset)
   {
       if(empty($number)){
           return $this->Execute($strsql);
       }else{
           return $this->Execute($strsql.' limit '.$offset.','.$number);
       }
   }

   function __destruct()
   {
       $this->close();
       $this->set("user","");
       $this->set("host","");
       $this->set("password","");
       $this->set("database","");
   }
}
?> 



在此基礎上,我順便封裝SIDU(select,insert,update,delete)四種基本操作,作為簡化的zend Framework的module。代碼如下(這個沒寫注釋了,懶的寫。。):


<?
class module{

  var $mysql;

  var $tbname;

  var $debug=false;

  function __construct($tbname){
     if(!is_string($tbname))die('Module need a args of tablename');
   $this->tbname=$tbname;
   $this->mysql=phpbean::registry('db');
  }

  function _setDebug($debug=true){
     $this->debug=$debug;
  }

  function add($row){
     if(!is_array($row))die('module error:row should be an array');
   $strsql='insert into `'.$this->tbname.'`';
   $keys='';
   $values='';
   foreach($row as $key=>$value){
      $keys.='`'.$key.'`,';
    $values.='/''.$value.'/'';
   }
   $keys=rtrim($keys,',');
   $values=rtrim($values,',');
   $strsql.=' ('.$keys.') values ('.$values.')';
   if($this->debug)echo '<hr>'.$strsql.'<hr>';
   $this->mysql->query($strsql);
   return $this->mysql->insert_id();
  }

  function query($strsql){
     return $this->mysql->Execute($strsql);
  }

  function count($where=''){
     $strsql='select count(*) as num from `'.$this->tbname.'` ';
   if(!empty($where))$strsql.=$where;
   $rs=$this->mysql->Execute($strsql);
   return $rs[0]['num'];
  }

  function select($where=''){
     $strsql='select * from `'.$this->tbname.'` ';
   if(!empty($where))$strsql.=$where;
   return $this->mysql->Execute($strsql);
  }

  function delete($where=''){
     if(empty($where))die('Error:the delete method need a condition!');
   return $this->mysql->query('delete from `'.$this->tbname.'` '.$where);
  }

  function update($set,$where){
     if(empty($where))die('Error:the update method need a condition!');
   if(!is_array($set))die('Error:Set must be an array!');
   $strsql='update `'.$this->tbname.'` ';
   //get a string of set
   $strsql.='set ';
   foreach($set as $key=>$value){
      $strsql.='`'.$key.'`=/''.$value.'/',';
   }
   $strsql=rtrim($strsql,',');
   return $this->mysql->query($strsql.' '.$where);
  }

  function detail($where){
     if(empty($where))die('Error:where should not empty!');
   $rs=$this->mysql->query('select * from `'.$this->tbname.'` '.$where);
   return $this->mysql->seek(0);
  }
}
?>

php技術支持php4、php5的mysql數據庫操作類,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 94久久国产乱子伦精品免费 | 91在线亚洲 | 日本一区二区三区日本免费 | 成人在线观看一区 | 国产福利2021最新在线观看 | 国产每日更新 | 国产一级特黄a大片99 | 国产色婷婷精品综合在线 | 九九九九九热 | 日本一区二区三区视频在线 | 免费精品久久久久久中文字幕 | 一色屋免费视频 | 国产精品自拍第一页 | 91在线在线啪永久地址 | 亚洲精品影院 | 992tv又爽又黄的免费视频 | 国产乱子精品免费视观看片 | 欧美精品v日韩精品v国产精品 | 九月丁香十月婷婷在线观看 | 性夜黄a爽爽免费视频国产 性夜影院爽黄e爽痛轻点www | 欧美一区二区三区在线视频 | 久久国产精品99久久久久久老狼 | 999成人精品视频在线 | 美女视频毛片 | 亚洲第一页综合 | 99久久久久国产精品免费 | 久久精品国产在热久久2019 | 成人资源在线 | 久久中文娱乐网 | 国产一区二区高清视频 | 久草视频中文在线 | 国产精品福利一区二区 | 久久亚洲欧美日本精品品 | 国内精品哆啪啪 | 久久看视频 | 丁香六月婷婷激情 | 国产一区国产二区国产三区 | 99久久精品国产麻豆 | 国产精品丝袜高跟鞋 | 精品自在线| 国产91在线播放中文 |