PHP实现数据库连贯操作类

hjpking 2010-01-07 11:13:12
写了两个小时,终于完成了。
首先声明,这个类写得还有很多问题,希望大家不要扔砖头。所以我把他发在基础编程里面。
请大家多提意见,如果效果好,将一直更新。
...全文
112 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjpking 2010-01-07
  • 打赏
  • 举报
回复
代码:
<?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.6

SET 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');
hjpking 2010-01-07
  • 打赏
  • 举报
回复
不好意思,刚刚忘记把代码文件发上出了,这个论坛是不是不可以上传文件呀。
iwantnet 2010-01-07
  • 打赏
  • 举报
回复
顶,给一个连接地址呀!

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧