接口
abstract class db{
//连接服务器
public abstract function connect($n,$u,$p);
//发送查询
protected abstract function query($sql);
//查询单个数据
public abstract function getone($sql);
//查询单行数据
public abstract function getrow($row);
//查询多行数据  自动执行insert/update语句
public abstract function autoexecute($table,$data,$act='insert',$where='');
}
 
--------------------------------------------------------------------------------------------------------------
 
class mysql extends db{
private static $ins=null;
private $conn=null;
private $conf=array();
protected function __construct(){
$this->conf=conf::getins();
$this->connect($this->conf->host,$this->conf->user,$this->conf->pwd);
$this->select_db($this->conf->db);
$this->setchar($this->conf->char);
}
public function __destruct(){
}
public static function getins(){
if(!(self::$ins instanceof self)){
self::$ins=new self();
}
return self::$ins;
}
public function connect($h,$u,$p){
$this->conn=mysql_connect($h,$u,$p);
if(!$this->conn){
$err=new exception('连接失败');
throw $err;
}
}
public function select_db($db){
$sql='use '.$db;
$this->query($sql);
}
public function setchar($char){
$sql='set names '.$char;
return $this->query($sql);
}
public function query($sql){
$rs=mysql_query($sql,$this->conn);
log::write($sql);
return $rs;
}
public function
autoexecute($table,$arr,$mode='insert',$where='where 1 limit
1'){
 
if(!is_array($arr)){
return false;
}
if($mode=='update'){
$sql='update'.$table.'set';
foreach($arr as $k=>$v){
$sql.=$k."='".$v."',";
}
$sql=rtrim($sql,',');
$sql.=$where;
return $this->query($sql);
}
$sql='insert
into'.$table.'('.implode(',',array_keys($arr)).')';
$sql.='values(\'';
$sql.=implode("','",array_values($arr));
$sql.='\')';
}
public function getall($sql){
$rs=$this->query($sql);
$list=array();
while($row=mysql_fetch_assoc($rs)){
$list[]=$row;
}
return $list;
}
public function getrow($sql){
$rs=$this->query($sql);
return mysql_fetch_assoc($rs);
}
public function getone($sql){
$rs=$this->query($sql);
$row=mysql_fetch_row($rs);
return $row[0];
}
// 返回影响行数的函数
public function affected_rows(){
return mysql_affected_rows($this->conn);
}
// 返回最新的auto_increment列的自增长的值
public function insert_id(){
return mysql_insert_id($this->conn);
}
}

封装一个mysql类(ggshop)的更多相关文章

  1. 使用libzplay库封装一个音频类

    装载请说明原地址,谢谢~~      前两天我已经封装好一个duilib中使用的webkit内核的浏览器控件和一个基于vlc的用于播放视频的视频控件,这两个控件可以分别用在放酷狗播放器的乐库功能和MV ...

  2. 1.使用C++封装一个链表类LinkList

     使用C++封装一个链表类LinkList.写出相应一个测试用例 链表需要提供 添加 修改删除 除重 合并 排序创建 销毁等接口. 不能调用库函数或者使用STL等类库 题目延伸********** ...

  3. Swift - 简单封装一个工具类模板

    创建模板类(封装一个类) 例1:新建一个名字叫做 Product 的类 Product.swift File 的内容 class Product { var name: String var desc ...

  4. 使用Java封装一个DBUtils类(反射)

    刚开始学JavaWeb时,我是调用N个setter方法将从数据库中查询出的数据封装成JavaBean的,极其繁琐. 后来了解SpringJDBC后,发现它提供的接口非常简单,然后就想自己封装一个简单的 ...

  5. 简单的一个MySQL类的实现:

    '''定义MySQL类:1.对象有id.host.port三个属性2.定义工具create_id,在实例化时为每个对象随机生成id,保证id唯一3.提供两种实例化方式,方式一:用户传入host和por ...

  6. 封装一个帮助类来写文件到android外置存储器上

    项目地址:点击打开 项目简介:写文件到android外置存储器的一个帮助类,和它的demo程序 它是如何工作的呢? 1.创建 AppExternalFileWriter 对象并传递context(上下 ...

  7. 使用AutoFac实现依赖注入(封装一个注册类)

    public class AutoFacBootStrapper { public static void CoreAutoFacInit() { var builder = new Containe ...

  8. java分享第十七天-03(封装操作mysql类)

     JAVA操作mysql所需jar包:mysql-connector-java.jar代码: import java.sql.*; import java.util.ArrayList; import ...

  9. 封装一个 员工类 使用preparedStatement 查询数据 (2) 使用 arrayList 集合

    创建 员工=类生成 有参构造 get set 方法 toString 方法 package cn.hph; public class emp1 { //创建员工类的属性 private int id; ...

随机推荐

  1. ceph rgw s3 java sdk 上传大文件分批的方法

    Using the AWS Java SDK for Multipart Upload (High-Level API) Topics Upload a File Abort Multipart Up ...

  2. jeecg小吐槽续——自己折腾修改在线开发功能中“默认值”的使用

    -- 原来设置了"默认值"的字段,新建表单时不会出现在表单上,要保存后才能在列表页面出现,而且第二次编辑时,设置了"默认值"的字段再也不能改成空值! -- 要修 ...

  3. js jquery 页面加载初始化方法

    js jquery 页面加载初始化方法 一.js页面加载初始化方法 // 1.在body里面写初始化方法. <body onload='init()'> </body> < ...

  4. 基于Linux平台的libpcap源码分析和优化

    目录 1..... libpcap简介... 1 2..... libpcap捕包过程... 2 2.1        数据包基本捕包流程... 2 2.2        libpcap捕包过程... ...

  5. poj3468 A Simple Problem with Integers(zkw区间修改模板)

    此题是一道线段树的裸题,这里只是为了保存我的zkw线段树模板 #include <cstdio> #include <cstring> #include <iostrea ...

  6. <<< html5本地储存

    类似与Cookies,但由于Cookies储存量太小,大小也只有4-5KB的样子,html5的本地储存能存5M大小的数据 html5本地储存属性有,localStorage和sessionStorag ...

  7. WebStorage的使用

    HTML5中的WebStorage有两种类型的API:localStorage和sessionStorage: localStorage在本地永久性存储数据,除非显式将其删除或清空: sessionS ...

  8. ajax 的返回值类型

    ajax的dataType类型有三种:text,json,xml. text类型: 主页面: $.ajax({   url:"chuli.php",   dataType:&quo ...

  9. mysql备份脚本,每天执行一次全量备份,三次增量备份

    线上一个小业务的mysql备份 全量备份 #!/bin/bash #crete by hexm at -- #scripte name : full_backup.sh #descriptioni : ...

  10. js日期格式转换

    var mydate=new Date(); var year=mydate.getFullYear(); //获取四位数getYear() 获取两位 var month=mydate.getMont ...