自己写的php数据库类

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:
不是很全,待补
 
class_database.php
 
InBlock.gif<?php 
InBlock.gif /** 
InBlock.gif*数据库类 
InBlock.gif*/
    
InBlock.gif class DataBase 
InBlock.gif
InBlock.gif  var $pConnect=FALSE; //是否使用长连接 
InBlock.gif  var $mHost; //数据库主机 
InBlock.gif  var $mDatabase;    
InBlock.gif  var $db;  //数据库 
InBlock.gif  var $mUser; //数据库用户名 
InBlock.gif  var $mPwd; //数据库用户密码 
InBlock.gif  var $mConn; //连接标识 
InBlock.gif  var $result; // 执行query命令的结果资源标识 
InBlock.gif  var $num_rows; // 返回的条目数 
InBlock.gif  var $insert_id; // 传回最后一次使用 INSERT 指令的 ID 
InBlock.gif  var $affected_rows; // 传回query命令所影响的列数目 
InBlock.gif                              // INSERT、UPDATE 或 DELETE 所影响的列 (row) 数目。 
InBlock.gif                              // delete 如果不带where,那么则返回0 
InBlock.gif   //构造函数 
InBlock.gif   public function __construct($host,$user,$pwd,$db) 
InBlock.gif  { 
InBlock.gif    $ this->mHost=$host; 
InBlock.gif    $ this->mUser=$user; 
InBlock.gif    $ this->mPwd=$pwd; 
InBlock.gif    $ this->db=$db;    
InBlock.gif  }            
InBlock.gif    
InBlock.gif   //数据库连接                 
InBlock.gif   public function connect() 
InBlock.gif  { 
InBlock.gif     if($ this->pConnect) 
InBlock.gif    $ this->mConn=mysql_pconnect($ this->mHost,$ this->mUser,$ this->mPwd); //长连接 
InBlock.gif     else 
InBlock.gif    $ this->mConn=mysql_connect($ this->mHost,$ this->mUser,$ this->mPwd); //short connect 
InBlock.gif 
InBlock.gif     if(!$ this->mConn) $ this->dbhalt( "不能连接数据库!"); 
InBlock.gif     if($ this->db=="") $ this->db=$ this->dbDatabase; 
InBlock.gif     
InBlock.gif     if(!mysql_select_db($ this->db,$ this->mConn)) 
InBlock.gif    $ this->dbhalt( "数据库不可用!"); 
InBlock.gif  }  // eof#dbconnect() 
InBlock.gif 
InBlock.gif   //更改数据库 
InBlock.gif   public function dbChange($db){ 
InBlock.gif    $ this->db=$db; 
InBlock.gif    $ this->connect(); 
InBlock.gif  } 
InBlock.gif 
InBlock.gif   //执行SQL语句,返回结果资源id 
InBlock.gif   public function execute($sql){ 
InBlock.gif    $ this->result=mysql_query($sql); 
InBlock.gif     return $ this->result; 
InBlock.gif  } 
InBlock.gif 
InBlock.gif   //获取数组-索引和关联 
InBlock.gif   public function fetchArray($resultType=MYSQL_BOTH) 
InBlock.gif  { 
InBlock.gif     return mysql_fetch_array($ this->result,$resultType); 
InBlock.gif  } 
InBlock.gif    
InBlock.gif   //获取关联数组 
InBlock.gif   public function fetchAssoc() 
InBlock.gif  { 
InBlock.gif     return mysql_fetch_assoc($ this->result); 
InBlock.gif  }    
InBlock.gif    
InBlock.gif   //获取数字索引数组 
InBlock.gif   public function fetchIndexArray() 
InBlock.gif  { 
InBlock.gif     return mysql_fetch_row($ this->result); 
InBlock.gif  } 
InBlock.gif    
InBlock.gif   //获取对象数组 
InBlock.gif   public function fetchObject() 
InBlock.gif  { 
InBlock.gif     return mysql_fetch_object($ this->result); 
InBlock.gif  }        
InBlock.gif    
InBlock.gif   //返回记录行数 
InBlock.gif  function numRows() 
InBlock.gif  { 
InBlock.gif     return mysql_num_rows($ this->result); 
InBlock.gif  } 
InBlock.gif 
InBlock.gif   //返回主机中所有数据库名 
InBlock.gif   public function dbNames() 
InBlock.gif  { 
InBlock.gif    $rsPtr=mysql_list_dbs($ this->mConn); 
InBlock.gif    $i=0; 
InBlock.gif    $cnt=mysql_num_rows($rsPtr); 
InBlock.gif     while($i<$cnt) 
InBlock.gif    { 
InBlock.gif      $rs[]=mysql_db_name($rsPtr,$i); 
InBlock.gif      $i++; 
InBlock.gif    } 
InBlock.gif     return $rs; 
InBlock.gif  } 
InBlock.gif 
InBlock.gif  function dbhalt($errmsg){ 
InBlock.gif    $msg= "数据库有问题!"
InBlock.gif    $msg=$errmsg; 
InBlock.gif    echo "$msg"
InBlock.gif    die(); 
InBlock.gif  } 
InBlock.gif 
InBlock.gif   //删 
InBlock.gif  function delete($sql){ 
InBlock.gif    $result=$ this->execute($sql,$dbbase); 
InBlock.gif    $ this->affected_rows=mysql_affected_rows($ this->dbLink); 
InBlock.gif    $ this->free_result($result); 
InBlock.gif     return $ this->affected_rows; 
InBlock.gif  } 
InBlock.gif 
InBlock.gif   //增 
InBlock.gif  function insert($sql){ 
InBlock.gif    $result=$ this->execute($sql,$dbbase); 
InBlock.gif    $ this->insert_id=mysql_insert_id($ this->dbLink); 
InBlock.gif    $ this->free_result($result); 
InBlock.gif     return $ this->insert_id; 
InBlock.gif  } 
InBlock.gif 
InBlock.gif   //改 
InBlock.gif  function update($sql){ 
InBlock.gif    $result=$ this->execute($sql,$dbbase); 
InBlock.gif    $ this->affected_rows=mysql_affected_rows($ this->dbLink); 
InBlock.gif    $ this->free_result($result); 
InBlock.gif     return $ this->affected_rows; 
InBlock.gif  } 
InBlock.gif    
InBlock.gif   //关闭连接 
InBlock.gif  function dbclose(){ 
InBlock.gif    mysql_close($ this->dbLink); 
InBlock.gif  } 
InBlock.gif} // end class 
InBlock.gif?> 
InBlock.gif 
 
 
简单使用下:
 
InBlock.gif<?php 
InBlock.gifinclude  "class_database.php"
InBlock.gif 
InBlock.gif$mydb= new DataBase( "localhost", "root", "123456", "test"); 
InBlock.gif$mydb->connect(); 
InBlock.gif$mydb->execute( "set names GBK"); 
InBlock.gif$mydb->execute( "select * from usrs"); 
InBlock.gifprint_r($mydb->dbNames()); 
InBlock.gif?>





本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/107510,如需转载请自行联系原作者


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
22天前
|
NoSQL 关系型数据库 MySQL
不是 PHP 不行了,而是 MySQL 数据库扛不住啊
【9月更文挑战第8天】这段内容讨论了MySQL在某些场景下面临的挑战及其原因,并指出这些问题不能完全归咎于MySQL本身。高并发读写压力、数据量增长以及复杂查询和事务处理都可能导致性能瓶颈。然而,应用程序设计不合理、系统架构不佳以及其他数据库选择和优化策略不足也是重要因素。综合考虑这些方面才能有效解决性能问题,而MySQL通过不断改进和优化,仍然是许多应用场景中的可靠选择。
|
2月前
|
SQL NoSQL 关系型数据库
实时数仓Hologres发展问题之实时数仓的类数据库化与HTAP数据库的差异如何解决
实时数仓Hologres发展问题之实时数仓的类数据库化与HTAP数据库的差异如何解决
41 2
|
26天前
|
NoSQL 关系型数据库 PHP
php连接数据库
要使用PHP连接PolarDB或MongoDB数据库,需先准备连接信息,并编写相应代码。对于PolarDB,需设置主机地址、端口、数据库名及凭据,使用`pg_connect`函数建立连接;而对于MongoDB副本集,需安装MongoDB PHP驱动,通过`MongoDB\Client`连接指定的副本集实例。请确保替换示例代码中的占位符为实际值,并正确配置副本集名称和主机信息。更多详细信息与示例代码,请参考相关链接。
132 72
|
5天前
|
SQL 关系型数据库 数据库连接
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
本文介绍了PHP中PDO(PHP Data Objects)扩展的基本概念和使用方法。内容包括PDO类和PDOStatement类的介绍,PDO的简单使用,预定义占位符的使用方法,以及PDOStatement对象的使用。文章还讨论了绑定预定义占位符参数的不同形式,即bindValue和bindParam的区别。通过具体示例,展示了如何使用PDO进行数据库连接、数据查询、数据插入等操作。
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
|
5天前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
7天前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
|
17天前
|
PHP
PHP中的面向对象编程:理解类与对象
本文将深入探讨PHP中面向对象编程的核心概念——类与对象。通过实例讲解,帮助读者更好地理解如何在PHP中运用OOP编写更高效、可维护的代码。
23 9
|
2月前
|
SQL 关系型数据库 MySQL
PHP与数据库交互的艺术:深入探讨PDO扩展
【8月更文挑战第28天】在数字信息时代的海洋里,PHP作为一艘灵活的帆船,承载着无数网站和应用的梦想。而PDO扩展,则是这艘帆船上不可或缺的导航仪,指引着数据安全与效率的航向。本文将带你领略PHP与数据库交互的艺术,深入浅出地探索PDO的世界,从连接数据库到执行复杂的查询,每一步都清晰可见。我们将一起航行在这段奇妙的旅程上,解锁数据的奥秘,体验编程的乐趣。
15 1
|
2月前
|
PHP 开发者
PHP中的面向对象编程:掌握类与对象的精髓
探索PHP的面向对象编程世界,本文将带你了解如何通过创建和操作类来实例化对象。我们将深入讲解类的声明、构造函数的使用以及继承和多态性的概念。准备好,让我们一起在代码的海洋中航行,揭开PHP对象编程的神秘面纱!
|
2月前
|
SQL 缓存 数据库连接
拯救php性能的神器webman-数据库
Webman 框架与这些最佳数据库管理实践的结合,可为应用程序提供快速响应的用户体验,高吞吐量,提升应用程序的整体性能表现。在对数据库交互进行设计和开发时,持续关注性能指标和优化,确保数据库层面不会成为应用程序的瓶颈,这样便能充分利用 Webman 来提升 PHP 应用的性能。
79 4