数据库操作类(PHP/mysql)

PHP自定义MySQL类实战:深入数据库操作 构建一个强大的自定义MySQL类可以大大提高代码的可重用性、可维护性以及开发效率。本章节将深入探讨自定义MySQL类的设计思想、架构以及如何实现关键功能细节。开发过程中,数据库操作是不可或缺的一部分。随着项目规模的扩大,直接在业务逻辑中编写SQL语句会使得代码变得冗长且难以维护。因此,构建一个自定义的MySQL类来管理数据库操作,可以将数据库逻辑与业务逻辑分离,提升代码的模块化水平。这种设计模式不仅可以提高代码的可重用性,还能够使得数据库操作更加集中和规范化。 阅读详情

<?php
/* 数据库查询类  start*/

class Database
{

    var
$dbhostname;
    var
$dbname;
    var
$dbuser;
    var
$dbpassword;
    var
$connid;
    var
$query;
    var
$result;
    var
$resultid;
    var
$insertid;
    var
$rows;
    var
$errCode             = 0;
    var
$errString         = "";
    var
$debugString  = "";
  var
$xml                    = "";

    
/* 构造函数 */
    
function Database()
    {

        
$this->dbhostname    = "localhost";        //登录数据库主机名
        
$this->dbname          = "yourdb";             /数据库名
        
$this->dbuser          = "root";                    //数据库登录用户名
        
$this->dbpassword    = "";                         //数据库登录密码
        
$this->_connect();                                    //连接数据库
        
$this->_db_select();                                //选择数据库

    
}

    
/* 数据库执行函数, $type 执行操作类型, ""为查询, "update"为更新, "insert"为插入, "delete"为删除 */
    
function db_query($sql,$type)
    {

            
$this->query = $sql;
            if (
$this->_query())
            {

                if(empty(
$type))
                {
                    
$this->_num_rows();                              //返回查询的函数
                    
$this->result = $this->_fetch_array();  //返回查询结果
                
}
                if (
$type == "insert")
                {
                    
$this->insertid=@mysql_insert_id();            //返回插入的ID自动增量
                
}
                return
true;
            }
            else
                return
false;

    }

    
/* 数据库结果生成XML */
  
function createXML($itemroot="child",$item="root")
  {
      
$dom = new DOMDocument("1.0","utf-8");
      
$dom->preserveWhiteSpace = false;
      
$dom->formatOutput = true;
    
$rootNode = $dom->createElement($item);
        for(
$i=0;$i<count($this->result);$i++)
      {
      
$itemNode = $dom->createElement($itemroot);
          foreach(
$this->result[$i] as $key=>$value)
          {
                  
//$value = iconv("gb2312","utf-8",$value);
                  
$tmpNode = $dom->createElement($key,$value);
                  
$itemNode->appendChild($tmpNode);
          }
          
$rootNode->appendChild($itemNode);
      }
      
$dom->appendChild($rootNode);
      if (
$this->xml = $dom->saveXML())
          return
$this->xml;
      else
          return
false;
  }

  
/* 连接数据库 */
    
function _connect()
    {


        
$this->connid = @mysql_connect($this->dbhostname,$this->dbuser,$this->dbpassword);
        if (
false == $this->connid)
        {
            
$this->errCode = 1;
            
$this->errString      = "不能连接数据库!";
            
$this->debugString = "不能连接数据库: ".mysql_error();
            
$this->showErr();
            return
false;
        }
        else
            return
true;
    }

    
/* 选择数据库 */
    
function _db_select()
    {


        
$selectFlag = @mysql_select_db($this->dbname,$this->connid);
        if (
false == $selectFlag)
        {
            
$this->errCode = 2;
            
$this->errString   = "不能选择数据库!";
            
$this->debugString = "不能选择数据库: ".$this->dbname;
            
$this->showErr();
            return
false;
        }
        else
            return
true;

    }

    
/* 数据库查询语句 */
    
function _query()
    {


        
$this->resultid = @mysql_query($this->query,$this->connid);
        if (
false == $this->resultid )
        {
            
$this->errCode = 3;
            
$this->errString   = "数据库查询语句错误!";
            
$this->debugString = "数据库查询语句错误: ".$this->query.mysql_error();
            
$this->showErr();
            return
false;
        }
        else
            return
true;

    }

    
/* 返回查询记录总数 */
    
function _num_rows()
    {

        
$this->rows = @mysql_num_rows($this->resultid);

    }

    
/* 返回结果数组 */
    
function _fetch_array()
    {
        if (
$this->errCode != 3)
        {
            
$tmpResult = "";
            
$i = 0;
            while (
$row = mysql_fetch_array($this->resultid,MYSQL_ASSOC))
            {

                
$tmpResult[$i] = $row;
                
$i++;
            }
//end while.

            
return empty($tmpResult) ? NULL : $tmpResult;

        }

    }

    
/* 显示错误信息 $debugString用于调试,$errString用于给客户显示 */
    
function showErr()
    {

        
//echo $this->debugString."/n";

    
}

    
/* 关闭连接,释放内存 */
    
function close()
    {
        @
mysql_free_result($this->resultid);
        @
mysql_close($this->connid);
    }

    function
__destruct()
    {
        if(
$this->connid)
        {

            
$this->close();
        }
    }
}
/* 数据库查询类  end*/
?>  

 

php实现MySQL数据库操作类.zip php实现MySQL数据库操作类 立即下载

相关推荐

php操作mysql数据库操作类

php操作mysql数据库操作类,包括数据库连接及操作

【深度学习】PHP操作mysql数据库总结

PHP与MySQL的连接

zgscwxd的博客 2727

php万能MySQL数据库操作类

一个php开发的万能MySQL数据库连接类,完全开放的源代码,可以自由修改

PHP操作数据库

PHP操作数据库

2201_75815645的博客 2083

简单的php-mysql操作类.zip

介绍一个简单的php-mysql操作类,数据库连接和设置,执行操作,显示信息,取得数据集的某个值,取得数据集的某个值,取得数据集的行数,循环读取数据,最后一次插入纪录的id值,插入任意数据,修改数据,删除数据,关闭数据连接。

基于Ollama本地大模型的Python自动化翻译工具开发实践

本文详细介绍了如何利用Ollama本地大模型和Python开发自动化批量翻译工具。通过部署本地开源模型、设计精准提示词、处理长文本分割及多种文档格式,构建了一个兼顾隐私安全、可控性与成本效益的翻译流水线,有效解决了文档批量翻译的痛点。

yhn45678901的博客 560

php常用数据库操作

是 PHP 中用于获取查询结果中行数的函数,它是 MySQLi(MySQL Improved Extension)扩展库的一部分。MySQLi 是 PHP 提供的一个强大且面向对象的扩展,用于与 MySQL 数据库进行交互。是 PHP 中用于执行 SQL 查询的函数,它是 MySQLi(MySQL Improved Extension)扩展库的一部分。函数执行指定的 SQL 查询,并返回一个结果对象或布尔值,具体取决于查询的类型和执行结果。这种格式可以提高执行查询的效率,并提高应用程序的安全性。

weixin_72330417的博客 1453

与rkipc通信

函数名称功能系统模块初始化系统模块反初始化重启恢复出厂设置导出日志导出配置文件导入配置文件系统升级获取用户数设置用户数获取用户权限设置用户权限获取用户名设置用户名获取密码(已加密)设置密码(已加密)新增用户删除用户。

qq_44643189的博客 1611

php mysql 常用类库_PHP常用操作类实现——数据库操作类

概述谢谢大家的收藏与赞,这是对我最大的鼓励。这一系列文章主要是一些PHP常用的类操作,回顾一下面向对象,我一直致力于小白文章的撰写,因为我也是小白,相信有人需要,希望读者能够喜欢。说明关于PHP语言实现各种操作类,网上都能够找得到,但是质量参差不齐,有的代码不好懂,有时候看的眼花缭乱,所以我在这里统一作了一个整理(注意:是整理,每一种操作类,我至少会参考三份优秀代码,然后自己跑出来,而不是CV)我...

weixin_36440319的博客 268

Bochs源码分析 - 4: 使用ida来调试bochs

前言 bochs内部提供了一个调试器,但是这个命令行调试器相当难用,想找一个gui的debugger。第一次是在百度百科的bochs词条中介绍的peter-bochs-debugger调试器(java编写),但是后来发现ida也有一个bochs调试器,因为对ida比较熟悉,就选用此作为bochs调试器。 在配置过程中参考博客 https://blog.youkuaiyun.com/cssxn/article/details/90738498 中的配置,但是这是直接发布版本,拿源码编译...

WriteAnything_的博客 2755

手把手教你学simulink(8.2)--simulink的实战案例:信号分析

通过以上步骤,你已经成功使用 Simulink 对信号进行了频谱分析和时域分析,提取了信号的有用信息。这个案例展示了如何创建 Simulink 模型、添加和连接模块、设置仿真参数、运行仿真以及分析结果。希望这个案例能帮助你更好地理解和使用 Simulink 进行信号分析。

MHD0815的博客 1123

数据库类php,数据库操作类(PHP/mysql)

var$dbhostname;var$dbname;var$dbuser;var$dbpassword;var$connid;var$query;var$result;var$resultid;var$insertid;var$rows;var$errCode=0;var$errString="";var$debugString="";var$xml="";/* 构造函数 */functionDa...

weixin_29830257的博客 223

4、同轴3 - RRR球面并联机构运动分析与自主移动农业水果采摘机器人设计

本文研究了同轴3-RRR球面并联机构的运动学与速度分析,采用几何与数值方法进行位置分析,并利用螺旋理论简化雅可比矩阵的推导,通过ADAMS仿真验证了结果的准确性。同时提出一种新型自主移动农业水果采摘机器人设计,具备多功能末端执行器、水果软管转移系统和配重式静态稳定性结构,旨在减少采摘损伤、提升效率。文章还探讨了该机构在机器人控制与仿真中的应用潜力,以及采摘机器人在智能化升级与多机协作方面的发展方向。

y4z5a6b7的博客 246

PHP数据库操作类mysql/mssql/access

&lt;?php class db_factory{ // The parameterized factory method public static function create($type, $cached=false) { $cache_name=null; if($cached){ $cache_name = '_cache'; ...

dcj3sjt126com的专栏 196

【SpringBoot 4.x 第29节】Spring Security 7 入门:先理解认证和授权!

🏆 本文收录于 《滚雪球学 Spring Boot 4.x》 专栏。本专栏面向 有一定 Java 基础,但尚未系统学习 Spring Boot 的读者,采用“滚雪球式学习法”:先跑通、再理解、再重构、再上线,带你从第一个 Hello API 开始,逐步完成一个可部署、可监控、可扩展的后端项目。

**My Coding Family** 551

基于Simulink的BCH码编解码仿真建模示例

BCH码是一类循环码,能够纠正一定数量的随机错误。灵活性:可以根据需要选择不同的码长和纠错能力。高效性:适用于短码长和中等码长的场景,广泛用于卫星通信、存储系统等。实现简单:编码和解码过程可以通过硬件或软件高效实现。在本示例中,我们将使用MATLAB/Simulink中的和模块来完成BCH码的编解码操作,并通过仿真验证其误码率(BER)性能。通过本指南,我们介绍了如何基于Simulink搭建一个BCH码的编解码模型,并进行了仿真以验证其性能。背景介绍:理解BCH码的基本原理及其在通信系统中的应用。

xiaoheshang_123的博客 189

discuz db_mysql.calss.php_【discuzX2】/source/class/class_core.php文件中数据库操作类DB及db_mysql分析...

/***DiscuzMySQL类的支持程序中一般不直接使用此类,而是使用DB类,DB类对db_mysql类中的方法又进行了二次封装**/classdb_mysql{var$tablepre;var$version='';var$querynum=0;var$slaveid=0;var$curlink;var$link=array();var$config=...

weixin_39780260的博客 181

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【discuzX2】/source/class/class_core.php文件中数据库操作类DB及db_mysql分析

<?php /** *DiscuzMySQL类的支持程序中一般不直接使用此类,而是使用DB类,DB类对db_mysql类中的方法又进行了二次封装 * */ classdb_mysql { var$tablepre; var$version=''; var$querynum=0;...

weixin_30847939的博客 205

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

[原创]简单快速有趣的MySQL数据库操作类:SimpleDB

 自己写着玩的,代码没有测试,不过觉得思路不错,如果能够加上部分异常处理的功能,应该比较帅了,支持PHP4/PHP5,恩,虽然没有ADOdb或者PEAR::DB强,不错一般应用应该不错,恩。喜欢的就自己拿去用吧,自己随便改,呵呵,也欢迎提意见。(注释遵循PHPDoc的标准,便于生成手册) 注意:代码未经测试,出现问题可要自己负责哇,呵呵。  //============

heiyeluren的blog(黑夜路人的开源世界) 4858

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C# MySqlHelp类 "DbModel.MySql"数据库操作类

以前做易语言/PHP的. 最近刚入门C#, 就简单的封装了一个类库, 边学边玩才容易学到东西嘛, 比起sqlserver, 我还是觉得mysql更加有亲切感; 于是模仿ThinkPHP编写了一个”MySql”数据库操作类. 东西做的比较简单, 学习过程中也有大佬指导了一些问题. 在此非常感谢 这个类库应该来说还有一些问题需要解决, 异常捕捉什么的....

weixin_30491641的博客 269

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

例1:连接MYSQL数据库例子。(a.php) 复制代码 代码如下: <?php require('e/class/connect.php'); //引入数据库配置文件和公共函数文件 require('e/class/db_sql.php'); //引入数据库操作文件 $link=db_connect(); //连接MYSQL $empire=new mysqlquery(); ...

滴水石穿 2410

PHP封装的PDO操作MySql数据库

本文介绍了一个基于PDO的MySQL数据库操作类DB_API,提供了完整的CRUD操作和原生SQL执行功能。该类通过构造函数建立数据库连接,包含insert()、update()、delete()、select()等核心方法,支持字段筛选、条件查询、排序和分页等功能。所有方法都采用预处理语句防止SQL注入,并通过errorMsg()返回错误信息。配套的Db.php配置文件和使用示例演示了如何实例化类并执行增删改查操作,包括基本查询、条件查询、LIKE模糊查询以及原生SQL执行。该封装类简化了数据库操作,提高

2509_93966902的博客 279
上一篇: 用NUnit自动测试.NET代码
下一篇: 使用NUnit在.Net编程中进行单元测试
forlinux
博客等级 码龄21年 53粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值