加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php mysql数据库操作类

发布时间:2023-02-28 13:19:15 所属栏目:PHP教程 来源:
导读:MysqL数据库 DB类 ,方便学习PHP的朋友,用类方便扩展,不建议初级用户,可以等熟悉了MysqL的数据库操作函数以后再用,要不以后函数都记乱了

<?PHP

/*

* MysqL数据库 DB类

* @package db
MysqL数据库 DB类 ,方便学习PHP的朋友,用类方便扩展,不建议初级用户,可以等熟悉了MysqL的数据库操作函数以后再用,要不以后函数都记乱了

<?PHP 

/* 

 *    MysqL数据库 DB类 

 *    @package    db 

 *    @author        yytcpt(无影) 

 *    @version    2008-03-27 

 *    @copyrigth    http://www.d5s.cn/  

 */ 

class db { 

    var $connection_id = ""; 

    var $pconnect = 0; 

    var $shutdown_queries = array(); 

    var $queries = array(); 

    var $query_id = ""; 

    var $query_count = 0; 

    var $record_row = array(); 

    var $Failed = 0; 

    var $halt = ""; 

    var $query_log = array(); 

    function connect($db_config){ 

        if ($this->pconnect){ 

            $this->connection_id = MysqL_pconnect($db_config["hostname"],$db_config["username"],$db_config["password"]); 

        }else{ 

            $this->connection_id = MysqL_connect($db_config["hostname"],$db_config["password"]); 

        } 

        if ( ! $this->connection_id ){ 

            $this->halt("Can not connect MysqL Server"); 

        } 

        if ( ! @MysqL_select_db($db_config["database"],$this->connection_id) ){ 

            $this->halt("Can not connect MysqL Database"); 

        } 

        if ($db_config["charset"]) { 

            @MysqL_unbuffered_query("SET NAMES '".$db_config["charset"]."'"); 

        } 

        return true; 

    } 

    //发送sql 查询,并返回结果集 

    function query($query_id,$query_type='MysqL_query'){ 

        $this->query_id = $query_type($query_id,$this->connection_id); 

        $this->queries[] = $query_id; 

        if (! $this->query_id ) { 

            $this->halt("查询失败:n$query_id"); 

        } 

        $this->query_count++; 

        $this->query_log[] = $str; 

        return $this->query_id; 

    } 

    //发送sql 查询,并不获取和缓存结果的行 

    function query_unbuffered($sql=""){ 

        return $this->query($sql,'MysqL_unbuffered_query'); 

    } 

    //从结果集中取得一行作为关联数组 

    function fetch_array($sql = ""){ 

        if ($sql == "") $sql = $this->query_id; 

        $this->record_row = @MysqL_fetch_array($sql,MysqL_ASSOC); 

        return $this->record_row; 

    } 

    function shutdown_query($query_id = ""){ 

        $this->shutdown_queries[] = $query_id; 

    } 

    //取得结果集中行的数目,仅对 INSERT,UPDATE 或者 DELETE 

    function affected_rows() { 

        return @MysqL_affected_rows($this->connection_id); 

    } 

    //取得结果集中行的数目,仅对 SELECT 语句有效 

    function num_rows($query_id="") { 

        if ($query_id == "") $query_id = $this->query_id; 

        return @MysqL_num_rows($query_id); 

    } 

    //返回上一个 MysqL 操作中的错误信息的数字编码 

    function get_errno(){ 

        $this->errno = @MysqL_errno($this->connection_id); 

        return $this->errno; 

    } 

    //取得上一步 INSERT 操作产生的 ID 

    function insert_id(){ 

        return @MysqL_insert_id($this->connection_id); 

    } 

    //得到查询次数 

    function query_count() { 

        return $this->query_count; 

    } 

    //释放结果内存 

    function free_result($query_id=""){ 

           if ($query_id == "") $query_id = $this->query_id; 

        @MysqL_free_result($query_id); 

    } 

    //关闭 MysqL 连接 

    function close_db(){ 

        if ( $this->connection_id ) return @MysqL_close( $this->connection_id ); 

    } 

    //列出 MysqL 数据库中的表 

    function get_table_names(){ 

        global $db_config; 

        $result = MysqL_list_tables($db_config["database"]); 

        $num_tables = @MysqL_numrows($result); 

        for ($i = 0; $i < $num_tables; $i++) { 

            $tables[] = MysqL_tablename($result,$i); 

        } 

        MysqL_free_result($result); 

        return $tables; 

       } 

    //从结果集中取得列信息并作为对象返回,取得所有字段 

    function get_result_fields($query_id=""){ 

           if ($query_id == "") $query_id = $this->query_id; 

        while ($field = MysqL_fetch_field($query_id)) { 

            $fields[] = $field; 

        } 

        return $fields; 

       } 

    //错误提示 

    function halt($the_error=""){ 

        $message = $the_error."<br/>rn"; 

        $message.= $this->get_errno() . "<br/>rn"; 

        $sql = "INSERT INTO `db_error`(pagename,errstr,timer) VALUES('".$_SERVER["PHP_SELF"]."','".addslashes($message)."',".time().")"; 

        @MysqL_unbuffered_query($sql); 

        if (DEBUG==true){ 

            echo "<html><head><title>MysqL 数据库错误</title>"; 

            echo "<style type="text/css"><!--.error { font: 11px tahoma,verdana,arial,sans-serif,simsun; }--></style></head>rn"; 

            echo "<body>rn"; 

            echo "<blockquote>rn"; 

            echo "<textarea class="error" rows="15" cols="100" wrap="on" >" . htmlspecialchars($message) . "</textarea>rn"; 

            echo "</blockquote>rn</body></html>"; 

            exit; 

        } 

    } 

    function __destruct(){ 

        $this->shutdown_queries = array(); 

        $this->close_db(); 

    } 

    function sql_select($tbname,$where="",$limit=0,$fields="*",$orderby="id",$sort="DESC"){ 

        $sql = "SELECT ".$fields." FROM `".$tbname."` ".($where?" WHERE ".$where:"")." ORDER BY ".$orderby." ".$sort.($limit ? " limit ".$limit:""); 

        return $sql; 

    } 

    function sql_insert($tbname,$row){ 

        foreach ($row as $key=>$value) { 

            $sqlfield .= $key.","; 

            $sqlvalue .= "'".$value."',"; 

        } 

        return "INSERT INTO `".$tbname."`(".substr($sqlfield,-1).") VALUES (".substr($sqlvalue,-1).")"; 

    } 

    function sql_update($tbname,$row,$where){ 

        foreach ($row as $key=>$value) { 

            $sqlud .= $key."= '".$value."',"; 

        } 

        return "UPDATE `".$tbname."` SET ".substr($sqlud,-1)." WHERE ".$where; 

    } 

    function sql_delete($tbname,$where){ 

        return "DELETE FROM `".$tbname."` WHERE ".$where; 

    } 

    //新增加一条记录 

    function row_insert($tbname,$row){ 

        $sql = $this->sql_insert($tbname,$row); 

        return $this->query_unbuffered($sql); 

    } 

    //更新指定记录 

    function row_update($tbname,$where){ 

        $sql = $this->sql_update($tbname,$where); 

        return $this->query_unbuffered($sql); 

    } 

    //删除满足条件的记录 

    function row_delete($tbname,$where){ 

        $sql = $this->sql_delete($tbname,$where); 

        return $this->query_unbuffered($sql); 

    } 

    /*    根据条件查询,返回所有记录 

     *    $tbname 表名,$where 查询条件,$limit 返回记录,$fields 返回字段 

     */ 

    function row_select($tbname,$sort="DESC"){ 

        $sql = $this->sql_select($tbname,$where,$limit,$fields,$orderby,$sort); 

        return $this->row_query($sql); 

    } 

    //详细显示一条记录 

    function row_select_one($tbname,$orderby="id"){ 

        $sql = $this->sql_select($tbname,1,$orderby); 

        return $this->row_query_one($sql); 

    } 

    function row_query($sql){ 

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

        $rs_num = $this->num_rows($rs); 

        $rows = array(); 

        for($i=0; $i<$rs_num; $i++){ 

            $rows[] = $this->fetch_array($rs); 

        } 

        $this->free_result($rs); 

        return $rows; 

    } 

    function row_query_one($sql){ 

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

        $row = $this->fetch_array($rs); 

        $this->free_result($rs); 

        return $row; 

    } 

    //计数统计 

    function row_count($tbname,$where=""){ 

        $sql = "SELECT count(id) as row_sum FROM `".$tbname."` ".($where?" WHERE ".$where:""); 

        $row = $this->row_query_one($sql); 

        return $row["row_sum"]; 

    } 



?>

很久没有发帖了,把我常用的一些PHP类文件分享出来。 

如果您加了新功能,或者是有改进,请与大家一起分享。

在实际中的应用示例:

<?PHP 

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

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

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

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

    $db_config["charset"]        = "utf8"; 

    include('db.PHP');        //包含db类文件

    $db    = new db(); 

    $db->connect($db_config); 

    //例:查询表 table_name 中 cid=1的所有记录。 

    $row = $db->row_select('table_name','cid=1'); 

?> 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章