工厂模式实现数据库的操作
来源:互联网 发布:广州淘宝拍摄基地在哪 编辑:程序博客网 时间:2024/05/24 04:23
数据库操作封装
namespace Database;class db_mysqli{ private $link;//数据库连接 private $query; function err($error){//错误调用函数 die('对不起,您的操作有误。错误情况如下:'.$error); } function connect($config) {//数据库连接,需要数据库配置参数,$config以关联数组形式配置 extract($config); $link=new mysqli($dbhost,$dbuser,$dbpswd,$dbname); $link->set_charset($dbcharset); if($link){ // echo "success<br/>"; $this->link=$link; }else{ $this->err($link->connect_error); } } function query($sql){//执行sql语句 $query=$this->link->query($sql); if($query){ // echo "success1<br/>"; $this->query=$query; return $query; }else{ $this->err($sql.'<br/>'.$this->link->error); } } function findAll($query){//返回所有执行sql语句后产生的结果 $this->query=$query; while (($row=$this->query->fetch_assoc())){ $list[]=$row; } return isset($list)?$list:''; } function findOne($query){//返回一条结果 $this->query=$query; $oneRes=$this->query->fetch_assoc(); return $oneRes; } function findResult($query,$row,$field){ $this->query=$query; $this->query->data_seek($row); $data=$this->query->fetch_array(MYSQLI_BOTH); return $data[$field]; } function insert($table,$arr){//执行插入操作,可以插入多条数据 foreach ($arr as $key=>$value){ $value=$this->link->real_escape_string($value); $keyArr[]="`".$key."`"; $valueArr[]="'".$value."'"; } $keys=implode(",", $keyArr); $values=implode(",", $valueArr); $sql=<<<EOF insert into $table($keys) values($values)EOF; $this->query($sql); return $this->link->insert_id; } function update($table,$arr,$where){ foreach ($arr as $key=>$value){ $value=$this->link->real_escape_string($value); $key_valueArr[]="`".$key."`='".$value."'"; } $key_value=implode(",", $key_valueArr); $sql=<<<EOF update $table set $key_value where $whereEOF; $this->query($sql); } function del($table,$where){//删除操作 $sql=<<<EOF delete from $table where $whereEOF; $this->query($sql); }}
工厂模式封装
namespace Database;class DB { public static $db; public static $link; public static function init($dbtype, $config) { self::$db = new $dbtype(); self::$link=self::$db->connect($config); } public static function query($sql){ return self::$db->query($sql); } public static function findAll($sql){ $query = self::$db->query($sql); return self::$db->findAll($query); } public static function findOne($sql){ $query = self::$db->query($sql); return self::$db->findOne($query); } public static function findResult($sql, $row = 0, $filed = 0){ $query = self::$db->query($sql); return self::$db->findResult($query, $row, $filed); } public static function insert($table,$arr){ return self::$db->insert($table,$arr); } public static function update($table, $arr, $where){ return self::$db->update($table, $arr, $where); } public static function del($table,$where){ return self::$db->del($table,$where); }}
0 0
- 工厂模式实现数据库的操作
- C#数据库工厂模式的实现
- C#实现工厂模式简介--实现访问不同的数据库
- 工厂模式的实现
- 数据工厂类,实现了跨数据库的操作
- 【设计模式】轻巧的变化不同数据库操作 --- 抽象工厂模式
- 简单工厂模式的实现
- 简单工厂模式的实现
- 简单的工厂模式实现
- 工厂模式的模板实现
- 工厂模式的enum实现
- 工厂模式的C++实现
- 工厂模式的C#实现
- 简单工厂模式和工厂模式的实现例子
- 使用工厂模式的CRUD操作
- 数据库与工厂模式的思考
- javaee 数据库操作DAO工厂设计模式
- 简单工厂模式构建数据访问层以实现多种数据库之间的切换
- 5-4 jmu-报数游戏 (15分)
- 访问Tomcat服务器返回数据乱码
- make menuconfig 时出现错误 #include CURSES_LOC
- JAVA多线程—Executors类的应用
- c++第四次实验
- 工厂模式实现数据库的操作
- 啊啊啊
- 成为excel高手必须掌握的54个函数
- 在字符串指定位置插入字符串
- C++抽象编程——递归策略(3)——生成排列数(1)
- log4j.jar log4j.properties 配置与使用
- 404. Sum of Left Leaves
- Jacobian矩阵和Hessian矩阵简析
- 检测字符串中是否有字符重复