自己编写的数据库工具类

/**
 * 数据库工具类
 * 1.连接数据库
 * 2.执行增删改查功能功能并报错
 * 3.没有参数传递是则使用默认信息连接
 */

class mysql {
    private $link = null;       //记录连接资源
    private $host;
    private $port;
    private $user;
    private $pass;
    private $charset;
    private $dbname;            //设定6个私有属性,以存储连接属性

//单例化1,设定私有静态属性,存储该单例化对象
    private static $instance = null;
    //单例化2,将构造方法私有化
    private function __construct($conf){
        //保留属性,并设定默认值
        $this->host=$conf[‘host‘] ?$conf[‘host‘]:"localhost";
        $this->port=$conf[‘port‘]?$conf[‘port‘]:"3306";
        $this->user=$conf[‘user‘] ?$conf[‘user‘]:"root";
        $this->pass=$conf[‘pass‘] ?$conf[‘pass‘]:"zhangHD";
        $this->charset=$conf[‘charset‘] ?$conf[‘charset‘]:"utf8";
        $this->dbname=$conf[‘dbname‘] ?$conf[‘dbname‘]:"mvc";
        $this->connect();
    }
    //单例化3,设定静态方法并判断是否需要new对象,并返回
    static function getdb($conf){
        if(empty(self::$instance)){
            self::$instance = new self($conf);
        }
        return self::$instance;
    }

//更改数据库
    function select_database($db){
        $this->query("use $db");
        $this->dbname=$db;
    }

//更改连接的字符集
    function select_charset($charset){
        $this->query("set names $charset");
        $this->charset = $charset;
    }

//关闭连接
    function close(){
        mysql_close($this->link);
    }

//该方法专门处理SQL语句,执行成功则返回,失败则结束
    private  function query($sql){
        $result = mysql_query($sql,$this->link);
        if($result === false){
            echo "<p>发生错误了,请参考:";
            echo "<br>错误语句:".$sql;
            echo "<br>错误提示:".mysql_error();
            echo "<br>错误代号:".mysql_errno();
            die();              //失败即终止程序
        }else {
            return $result;
        }
    }

//该方法用于执行一条没有返回结果的增删改查语句
    function exec ($sql){
        $result = $this->query($sql);
        return true;
    }

//该方法可以执行一条返回多行数据的select语句,并将数据以“二维数组”的形式返回
    function getrows($sql){
         $result = $this->query($sql);
         //返回二维数组。此时$result是“结果集”
         while($res = mysql_fetch_assoc($result)){
            $arr[]=$res;
         }
         return $arr;      
    }

//返回一行多列数据
    function getonerow($sql){
         $result = $this->query($sql);
             //返回一组数据。此时$result是“结果集”
             if($rec = mysql_fetch_assoc($result)){
                 return $rec;
             }
             return array();
    }

//返回一行多列数据
    function getonedate($sql){
        $result = $this->query($sql);
        //返回一组数据。此时$result是“结果集”
        if($rec = mysql_fetch_row($result)){
            return $rec[0];//如果没有数据,则返回该行
         }
         return false;//表示没有数据
    }

//将连接资源保存到本地硬盘中
    function __sleep(){
        return array(‘host‘,‘port‘,‘user‘,‘pass‘,‘charset‘,‘dbname‘);
    }

//调取本地存储的连接资源再次连接数据库系统
    function __wakeup(){
        $this->connect();
    }

//连接数据库并将连接资源存储起来
    private  function connect(){
        $this->link = @mysql_connect("{$this->host}:{$this->port}","{$this->user}","{$this->pass}") or die (‘数据库服务器连接失败!!!‘);
        $this->select_charset($this->charset);
        $this->select_database($this->dbname);
    }
}

时间: 2024-11-06 14:06:48

自己编写的数据库工具类的相关文章

JAVA学习笔记(五十一)- DBUtil 封装数据库工具类

数据库工具类 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /* * 数据库工具类 */ public class DBUtil { // 获取数据库连接 public static Connection getConnection() { String dr

开发自己的框架——(二)数据库工具类的封装

为了让框架的内容与数据分离,我们把常用的类封装到一个工具类中,当用到这些方法时,就调用这个封装好的类,能够使代码的复用性得到很大的提高.首先,封装数据库相关操作,为了使封装规范化,我们创建一个接口让数据库实现接口中的方法,数据库使用PDO扩展访问数据.数据库接口类 I_DAO.interface.php 1 <?php 2 interface I_DAO 3 { 4 //查询所有数据的功能 5 public function getAll($sql=''); 6 // //查询一条数据 7 pu

单利模式的数据库工具类

package com.hanqi.dao; import java.sql.Connection; import java.sql.SQLException; //单利模式的数据库工具类 //返回数据连接 import com.mchange.v2.c3p0.ComboPooledDataSource; public class DBHelper { //1.隐藏默认的构造方法 private DBHelper() { } //2.静态的实例 private static DBHelper d

MySQL数据库工具类之——DataTable批量加入MySQL数据库(Net版)

MySQL数据库工具类之——DataTable批量加入数据库(Net版),MySqlDbHelper通用类希望能对大家有用,代码如下: using MySql.Data.MySqlClient; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Text; p

【JDBC编程】Java 连接 MySQL 基本过程以及封装数据库工具类

鉴于linux系统下安装oracle数据库过于麻烦,而相关的java连接mysql基本方法的参考文章过少且参差不齐,故本人查阅了一些书和网络资料写下此文章. 从数据库环境搭建.基本语法到封装工具类全过程,可作为参考.转载请注明来源. 一. 常用的JDBC API 1. DriverManager类 : 数据库管理类,用于管理一组JDBC驱动程序的基本服务.应用程序和数据库之间可以通过此类建立连接.常用的静态方法如下 static connection getConnection(String u

工具类之数据库工具类:DBUtil(采用反射机制)

经常操作数据库的码农们一定知道操作数据库是一项很复杂的工作,它不仅要解决各种乱码的问题还要解决各种数据表的增删改查等的操作. 另外每次操作数据库都要用到数据库连接.执行SQL语句.关闭连接的操作,所以在这里我就把这些功能封装到了一个工具类中,该类使用的是反射机制写成的,也就是说它可以帮助你完成对任何数据表的操作.关键代码如下: 首先是配置文件:config.properties driverName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost

JDBC-自定义数据库工具类(DBService)

写在前面的话: (1)使用JDBC,必须要使用对应的jar包,该笔记中使用jar包:mysql-connector-java-5.1 .6-bin.jar (2)使用连接池,一定要导入对象的数据库连接池包,该笔记中使用jar包:c3p0-0.9.1.2.jar 常用连接池:dbcp连接池.c3p0连接池.druid连接池 第一版:不用数据库连接池: 1 package cn; 2 3 import java.sql.Connection; 4 import java.sql.DriverMana

【php】利用php的构造函数与析构函数编写Mysql数据库查询类 (转)

上次在<[php]利用原生态的JavaScript Ajax为php进行MVC分层设计,兼容IE6>(点击打开链接) 一文中,对于php查询Mysql数据库的model.php写法还不够完善,在每一个方法中还需要自己声明mysql的$con对象,同时自己关闭 mysql的$con对象.这样,如果查询方法一多,再无缘无故地增加了许多声明$con对象与关闭$con对象的代码.其实完全可以利用php的构造函 数与析构函数给数据库类各个查询方法的注入$con对象,同时自动在每次查询之后自动回收$con

Apache_Commons_DbUtils数据库工具类说明

这几天在学习jdbc时,无意中发现apache的DbUtils工具类.用DbUtils执行sql语句,和将查询结果封装为JavaBean超级好用,省时省力. DBUtils是个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味.最容易出错的一大部分工作. 一.DbUtils下载 下载地址:http://apache.fayea.com//commons/dbutils/binaries/commons-dbu