PHP实现数据库连贯操作类
时间: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 -- -- 主机: 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
沙发啊,没有做,呵呵,谢谢楼主
作者: aoyoo 发布时间: 2010-01-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28