源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

支持php4、php5的mysql数据库操作类

  • 时间:2022-04-07 05:37 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:支持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);   } } ?>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部