php数据库操作类(转)

<?php

Class DB {

    private $link_id;

    private $handle;

    private $is_log;

    private $time;

    //构造函数

    public function __construct() {

        $this->time = $this->microtime_float();

        require_once("config.db.php");

        $this->connect($db_config["hostname"], $db_config["username"], $db_config["password"], $db_config["database"], $db_config["pconnect"]);

        $this->is_log = $db_config["log"];

        if($this->is_log){

            $handle = fopen($db_config["logfilepath"]."dblog.txt", "a+");

            $this->handle=$handle;

        }

    }

    

    //数据库连接

    public function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0,$charset=‘utf8‘) {

        if( $pconnect==0 ) {

            $this->link_id = @mysql_connect($dbhost, $dbuser, $dbpw, true);

            if(!$this->link_id){

                $this->halt("数据库连接失败");

            }

        } else {

            $this->link_id = @mysql_pconnect($dbhost, $dbuser, $dbpw);

            if(!$this->link_id){

                $this->halt("数据库持久连接失败");

            }

        }

        if([email protected]_select_db($dbname,$this->link_id)) {

            $this->halt(‘数据库选择失败‘);

        }

        @mysql_query("set names ".$charset);

    }

    

    //查询

    public function query($sql) {

        $this->write_log("查询 ".$sql);

        $query = mysql_query($sql,$this->link_id);

        if(!$query) $this->halt(‘Query Error: ‘ . $sql);

        return $query;

    }

    

    //获取一条记录(MYSQL_ASSOC,MYSQL_NUM,MYSQL_BOTH)             

    public function get_one($sql,$result_type = MYSQL_ASSOC) {

        $query = $this->query($sql);

        $rt =& mysql_fetch_array($query,$result_type);

        $this->write_log("获取一条记录 ".$sql);

        return $rt;

    }

    //获取全部记录

    public function get_all($sql,$result_type = MYSQL_ASSOC) {

        $query = $this->query($sql);

        $i = 0;

        $rt = array();

        while($row =& mysql_fetch_array($query,$result_type)) {

            $rt[$i]=$row;

            $i++;

        }

        $this->write_log("获取全部记录 ".$sql);

        return $rt;

    }

    

    //插入

    public function insert($table,$dataArray) {

        $field = "";

        $value = "";

        if( !is_array($dataArray) || count($dataArray)<=0) {

            $this->halt(‘没有要插入的数据‘);

            return false;

        }

        while(list($key,$val)=each($dataArray)) {

            $field .="$key,";

            $value .="‘$val‘,";

        }

        $field = substr( $field,0,-1);

        $value = substr( $value,0,-1);

        $sql = "insert into $table($field) values($value)";

        $this->write_log("插入 ".$sql);

        if(!$this->query($sql)) return false;

        return true;

    }

    //更新

    public function update( $table,$dataArray,$condition="") {

        if( !is_array($dataArray) || count($dataArray)<=0) {

            $this->halt(‘没有要更新的数据‘);

            return false;

        }

        $value = "";

        while( list($key,$val) = each($dataArray))

        $value .= "$key = ‘$val‘,";

        $value .= substr( $value,0,-1);

        $sql = "update $table set $value where 1=1 and $condition";

        $this->write_log("更新 ".$sql);

        if(!$this->query($sql)) return false;

        return true;

    }

    //删除

    public function delete( $table,$condition="") {

        if( empty($condition) ) {

            $this->halt(‘没有设置删除的条件‘);

            return false;

        }

        $sql = "delete from $table where 1=1 and $condition";

        $this->write_log("删除 ".$sql);

        if(!$this->query($sql)) return false;

        return true;

    }

    //返回结果集

    public function fetch_array($query, $result_type = MYSQL_ASSOC){

        $this->write_log("返回结果集");

        return mysql_fetch_array($query, $result_type);

    }

    //获取记录条数

    public function num_rows($results) {

        if(!is_bool($results)) {

            $num = mysql_num_rows($results);

            $this->write_log("获取的记录条数为".$num);

            return $num;

        } else {

            return 0;

        }

    }

    //释放结果集

    public function free_result() {

        $void = func_get_args();

        foreach($void as $query) {

            if(is_resource($query) && get_resource_type($query) === ‘mysql result‘) {

                return mysql_free_result($query);

            }

        }

        $this->write_log("释放结果集");

    }

    //获取最后插入的id

    public function insert_id() {

        $id = mysql_insert_id($this->link_id);

        $this->write_log("最后插入的id为".$id);

        return $id;

    }

    //关闭数据库连接

    protected function close() {

        $this->write_log("已关闭数据库连接");

        return @mysql_close($this->link_id);

    }

    //错误提示

    private function halt($msg=‘‘) {

        $msg .= "\r\n".mysql_error();

        $this->write_log($msg);

        die($msg);

    }

    //析构函数

    public function __destruct() {

        $this->free_result();

        $use_time = ($this-> microtime_float())-($this->time);

        $this->write_log("完成整个查询任务,所用时间为".$use_time);

        if($this->is_log){

            fclose($this->handle);

        }

    }

    

    //写入日志文件

    public function write_log($msg=‘‘){

        if($this->is_log){

            $text = date("Y-m-d H:i:s")." ".$msg."\r\n";

            fwrite($this->handle,$text);

        }

    }

    

    //获取毫秒数

    public function microtime_float() {

        list($usec, $sec) = explode(" ", microtime());

        return ((float)$usec + (float)$sec);

    }

}

?>

2. [代码]config.db.php     跳至 [1] [2] [全屏预览]

?


1

2

3

4

5

6

7

8

9

10

<?php

    $db_config["hostname"] = "localhost"; //服务器地址

    $db_config["username"] = "root"; //数据库用户名

    $db_config["password"] = "123"; //数据库密码

    $db_config["database"] = "test"; //数据库名称

    $db_config["charset"] = "utf8";//数据库编码

    $db_config["pconnect"] = 1;//开启持久连接

    $db_config["log"] = 1;//开启日志

    $db_config["logfilepath"] = ‘./‘;//开启日志

?>

时间: 2024-11-05 00:09:39

php数据库操作类(转)的相关文章

Android打造属于自己的数据库操作类。

1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要去做增删改查的操作的时候,就得通过getWritableDatabase获取一个SQLiteDataBase然后老老实实去写操作值的put以及查询返回的Cursor处理,其实我们可以搞一个对象来帮我们干这些事情,打造属于你自己的数据库操作类. 2.操作类的初显形 假设现在我们什么都没有,我们要去搞一

PHP 数据库操作类:ezSQL

EZSQL类介绍: 下载地址:http://www.jb51.net/codes/26393.html ezsql是一个小型的快速的数据库操作类,可以让你很容易地用PHP操作各种数据库( MySQL.oracle8/9 .interbase.FireBird.PostgreSQL.MS-SQL.sqlite.sqlite C++). 在你的脚本开头是要包含一个一个PHP文件.然后,你就可以使用更小.更容易的一套ezsql函数来代替标准的PHP数据库函数. 它会自动缓存的查询结果,提供了一系列简单

php中mysql数据库操作类

talk less and show code: <?php/** *以下代码用于数据库操作类的封装* * @author rex<[email protected]> * @version 1.0* @since 2015*/ class Mysql{ //数据库连接返回值 private $conn; /*** [构造函数,返回值给$conn]* @param [string] $hostname [主机名]* @param [string] $username[用户名]* @par

刚整了一个数据库操作类,但是可以用吗?

今天闲来无事,把以前自己搞的一个数据库操作类重新整理了一下,把命名规范了一下,位置和功能重新规划了一下. 源代码下载:http://files.cnblogs.com/xiaoshuai1992/xsFrameWork.SqlServer.zip 请先看图片和介绍 DbOperate文件夹 DbAccess类:核心类,运用Ado.net 对数据库进行操作. DbInParameter :传入DbAccess的参数,如参数,sql语句,sp名称,sp是执行还是返回数据. DbOutParamete

PHP类初识,通用数据库操作类,前端easyui-datagrid,form

实现功能:     左端datagrid显示简略信息,右侧显示选中行详细信息,数据库增删改 (1)点击选中行,右侧显示详细信息,其中[新增].[修改].[删除]按钮可用,[保存]按钮禁用 (2)点击[新增]按钮,[修改],[删除]按钮禁用,[保存]按钮启用 (3)点击[修改]按钮,[新增],[删除]按钮禁用 难点:通用数据库操作类中insert方法跟update方法 最终效果图: 前端功能不是很完善,按钮之间逻辑还是有点问题,最后补充前端代码 其中Formain.php对前端传值判断,并调用ac

PHP实现的一个简单的数据库操作类

PHP实现的一个简单的数据库操作类 实现的功能: - 在实例化的时候能设置连接字符集 - 在实例化的时候能连接数据库 - 在实例化的时候能选择默认数据库 - 销毁对象时关闭数据库 代码如下: <?php // 数据库操作类MySQLDB class MySQLDB { // 声明属性 private $server; private $username; private $password; public $default_db; public $link; // 声明构造函数 public f

php数据库操作类

话不多说,直接上代码! model.php 这里面为PHP的数据库操作类. 1 <?php 2 $config = include 'config.php'; 3 $m = new Model($config); 4 // $m->limit('0,5') 5 // ->table('imooc_cate') 6 // ->field('id,cName') 7 // ->order('id desc') 8 // ->where('id>3') 9 // -&g

PDO数据库操作类

1 <?php 2 include 'common_config.php'; 3 4 /** 5 * Class Mysql 6 * PDO数据库操作类 7 */ 8 class Mysql { 9 protected static $_dbh = null; //静态属性,所有数据库实例共用,避免重复连接数据库 10 protected $_dbType = DB_TYPE; 11 protected $_pconnect = false; //是否使用长连接 12 protected $_h

面向对象中数据库操作类

具体实现功能: 1.连接数据库: 2.插入数据: 3.更新数据: 4.删除数据' 5.修改数据: 6.求最大值: 7.求最小值: 8.求平均数: 9.求和: 10.指定查询: 具体代码分为三个部分: 一.config文件:主要用于连接数据库 <?php return array( 'DB_HOST' => '127.0.0.1',   //主机 'DB_USER' => 'root', //用户名 'DB_PWD' => '123456', //密码 'DB_NAME' =>

ASP.NET(C#) 数据库操作类 SqlServerDataBase

1 using System.Web.Security; 2 using System.Web.UI; 3 using System.Web.UI.WebControls; 4 using System.Web.UI.WebControls.WebParts; 5 using System.Web.UI.HtmlControls; 6 using System.Data.SqlClient; 7 8 namespace Mysqlserver 9 { 10 /// <summary> 11 /