写了两个小时,终于完成了。
首先声明,这个类写得还有很多问题,希望大家不要扔砖头。所以我把他发在基础编程里面。
请大家多提意见,如果效果好,将一直更新。

解决方案 »

  1. 代码:
    <?php
    /* 
     * auther:Evan Hou
     * descript: database operation class, come true coherence DB.
     * Data:2010-01-07 11:04
     */
    class db_class
    {
        public $CONN       = '';
        public $RES        = '';
        public $selectLang = '';
        public $updateLang = '';
        public $insertLang = '';
        public $deleteLang = '';    function  __construct()
        {
            $this->CONN = mysqli_connect('localhost', 'root', '123456', 'test');
        }    function  __destruct()
        {
            if(is_object($this->RES)) mysqli_free_result($this->RES);
            mysqli_close($this->CONN);
        }    function  __set($name,  $value)
        {
            echo $name = 'not find method!';
        }    function  __get($name)
        {
            echo 'not define value! $'.$name.'<br>';
        }    function  __call($name,  $arguments) 
        {
            echo 'not define method: '. $name.'<br>';
            echo 'invalid paramater: '. implode(',', $arguments).'<br>';
        }    public function select($part)
        {
            $this->selectLang[] = 'select '.$part;
            return $this;
        }    public function from($part)
        {
            $this->selectLang[] = 'from '.$part;
            $this->RES = mysqli_query($this->CONN, implode(' ', $this->selectLang));
            return $this;
        }    public function where($part)
        {
            $this->selectLang[] = 'where '.$part;
            $this->RES = mysqli_query($this->CONN, implode(' ', $this->selectLang));
            return $this;
        }    public function fetchArrayOne()
        {
            return mysqli_fetch_array($this->RES, MYSQLI_ASSOC);
        }    public function fetchArrayAll()
        {
            $rows = array();
            while($row = mysqli_fetch_array($this->RES, MYSQLI_ASSOC)) $rows[] = $row;
            return $rows;
        }    public function fetchObjOne()
        {
            return mysqli_fetch_object($this->RES);
        }
        public function update($part)
        {
            $this->updateLang[] = 'update '.$part;
            return $this;
        }    public function set($part)
        {
            $this->updateLang[] = 'set '.$part;
            return $this;
        }    public function uWhere($part)
        {
            $this->updateLang[] = 'where '.$part;
            return $this;
        }    public function execute()
        {
            mysqli_query($this->CONN, implode(' ', $this->updateLang));
        }    public function insert($part)
        {
            $this->insertLang[] = 'insert into '.$part;
            return $this;
        }    public function fields($part)
        {
            $this->insertLang[] = '('.$part.')';
            return $this;
        }    public function values($part)
        {
            $this->insertLang[] = 'values'.'('.$part.')';
            mysqli_query($this->CONN, implode(' ', $this->insertLang));
        }    public function delete()
        {
            $this->deleteLang[] = 'delete ';
            return $this;
        }    public function dForm($part)
        {
            $this->deleteLang[] = 'from '.$part;
            return $this;
        }    public function dWhere($part)
        {
            $this->deleteLang[] = 'where '.$part;
            mysqli_query($this->CONN, implode(' ', $this->deleteLang));
        }
    }
    /*
    * example
    * include DB select,update,insert,datele operation demo.
    * must has database table and configure connect database user with password.
     */
    $a = new db_class();//select example
    $a->select('*')->from('test')->where("name = 'joan'")->fetchArrayAll();//update example
    $a->update('test')->set("name = Evans")->uWhere("id = '5'");//insert example
    $a->insert('test')->fields('name,text')->values("'Alex', 'hello Alex'");//delete example
    $a->delete()->dForm('test')->dWhere("id = '4'");
    ?>
    数据库:
    -- phpMyAdmin SQL Dump
    -- version 2.10.3
    -- http://www.phpmyadmin.net
    -- 
    -- 主机: localhost
    -- 生成日期: 2010 年 01 月 07 日 03:08
    -- 服务器版本: 5.0.51
    -- PHP 版本: 5.2.6SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";-- 
    -- 数据库: `test`
    -- -- ---------------------------------------------------------- 
    -- 表的结构 `test`
    -- CREATE TABLE `test` (
      `id` int(10) NOT NULL auto_increment,
      `name` varchar(10) character set utf8 collate utf8_unicode_ci NOT NULL,
      `text` varchar(10) character set utf8 collate utf8_unicode_ci NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=15 ;-- 
    -- 导出表中的数据 `test`
    -- INSERT INTO `test` (`id`, `name`, `text`) VALUES 
    (1, 'evan', 'hello evan'),
    (2, 'joan', 'hello joan'),
    (3, 'cary', 'hello cary'),
    (14, 'Alex', 'hello Alex');
      

类似问题 »