php 如何造一个简短原始的数据库类

class DBDA
{
 public $host="localhost";
 public $uid="root";
 public $pwd="123";
 public $dbname="mydb";
 
 /**
 *给一个sql语句,返回执行的结果
 *@param string $sql 用户指定的sql语句
 *@param int $type 用户给的语句类型,0代表增删改,1代表查询
 *@return  返回查询的结果,如果是查询返回二维数组,如果是增删改返回true或false
 */
 function Query($sql,$type=1)           //type默认是1,在sql语句是增删改的情况下一定不要忘记将type的参数写成0
 {
  //造连接对象
  $db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
  
  //执行sql语句
  $reslut = $db->query($sql);
  
  //从结果集对象里面取数据
  if($type==1)
  {
   return $reslut->fetch_all();
  }
  else
  {
   return $reslut;
  }
 }
 
 /**
 *给一个sql语句,返回关联的二维数组
 *@param string $sql 用户指定的sql语句
 *@param int $type 用户给的语句类型,0代表增删改,1代表查询
 *@return  返回查询的结果,如果是查询返回二维数组,如果是增删改返回true或false
 */
 function GuanQuery($sql,$type=1)
 {
  //造连接对象
  $db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
  
  //执行sql语句
  $reslut = $db->query($sql);
  
  //取数据
  if($type==1)
  {
   $attr = array();
   while($a = $reslut->fetch_assoc())
   {
    $attr[] = $a;
   }
   
   return $attr; 
  }
  else
  {
   return $reslut;
  }
 }
 /**
 *给一个sql语句,返回字符串
 *@param string $sql 用户指定的sql语句
 *@param int $type 用户给的语句类型,0代表增删改,1代表查询
 *@return  返回查询的结果,如果是查询返回字符串,如果是增删改返回true或false
 */
 function StrQuery($sql,$type=1)      //单个数据的情况下strquery可直接给出结果,同时适合与聚合函数
 {
  //造连接对象
  $db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
  
  //执行sql语句
  $reslut = $db->query($sql);
  
  //取数据
  if($type==1)
  {
   $attr = $reslut->fetch_all();
   $str="";
   foreach($attr as $v)
   {
    $str .= implode("^",$v);                              //字符串拼接
    $str .="|";
   }
   return substr($str,0,strlen($str)-1);               //去掉最后的"|"
  }
  else
  {
   return $reslut;
  }
 }
}

时间: 2024-10-11 21:46:16

php 如何造一个简短原始的数据库类的相关文章

一个小时学会MySQL数据库

一个小时学会MySQL数据库 目录 一.数据库概要 1.1.发展历史 1.1.1.人工处理阶段 1.1.2.文件系统 1.1.3.数据库管理系统 1.2.常见数据库技术品牌.服务与架构 1.3.数据库分类 1.3.1.关系型数据库 1.3.2.非关系型数据库 1.4.数据库规范化 1.4.1. 什么是范式 1.4.2. 三大范式 1.4.3. 范式与效率 二.MySQL介绍 2.1.MySQL概要 2.2.系统特性 2.3.存储引擎 三.快速安装运行MySQL数据库 3.1.使用绿色版 3.1.

一起来造一个RxJava,揭秘RxJava的实现原理

RxJava是一个神奇的框架,用法很简单,但内部实现有点复杂,代码逻辑有点绕.我读源码时,确实有点似懂非懂的感觉.网上关于RxJava源码分析的文章,源码贴了一大堆,代码逻辑绕来绕去的,让人看得云里雾里的.既然用拆轮子的方式来分析源码比较难啃,不如换种方式,以造轮子的方式,将源码中与性能.兼容性.扩展性有关的代码剔除,留下核心代码带大家揭秘RxJava的实现原理. 什么是响应式编程 首先,我们需要明确,RxJava是Reactive Programming在Java中的一种实现.什么是响应式编程

PHP用单例模式实现一个数据库类

使用单例模式的出发点: 1.php的应用主要在于数据库应用, 所以一个应用中会存在大量的数据库操作, 使用单例模式, 则可以避免大量的new 操作消耗的资源. 2.如果系统中需要有一个类来全局控制某些配置信息, 那么使用单例模式可以很方便的实现. 这个可以参看ZF的FrontController部分. 3.在一次页面请求中, 便于进行调试, 因为所有的代码(例如数据库操作类db)都集中在一个类中, 我们可以在类中设置钩子, 输出日志,从而避免到处var_dump, echo. 创造单例注意: 1

一个C#的XML数据库访问类

原文地址:http://hankjin.blog.163.com/blog/static/33731937200942915452244/ 程序中不可避免的要用到配置文件或数据,对于数据量比较小的程序,部署数据库花费的时间就显得浪费了,因此用XML来存储不妨为一个很好的办法,而且结合C#的DataSet,我们可以很轻易的封装出一个代码简单而功能强大的数据访问类XMLConfigconfig.xml<root>  <table1>    <rowName1>hello&l

第二章 做一个简短的C++程序

第二章 做一个简短的C++程序 2.  输出语句的使用 endl要调用flush函数刷新缓冲区,而\n不需要调用 4.iostream与iostream.h的区别 5.  重名问题 释放命名空间的两种方法(1.所有 2局部) using namespace std; using std::endl; 本章总结: 1 //#include<iostream.h> 2 #include<iostream> //标准输入输出流,包含于std中,包含了cin.cout等关键字 3 usin

一个兼职DBA的数据库运维经验 小米科技 [email&#160;protected] 2011

一个兼职DBA的数据库运维经验 小米科技  [email protected] 2011 报警监控系统粒度太大,不好用(我们公司现状)数据库状况:十个服务器,惠普HP380G7 戴尔R710 ,都做了主从全部sas盘 15K RAID10服务器内存24G数据库跟业务混用,不是专门给数据库用 导致出问题(我们公司现状)备份用的xtrabackup 数据库不大:160G 70G 30G程序支持分库分表 --------------------------问题 io util% 100%(学)正常io

开源一个适用iOS的数据库表结构更新机制的代码

将前段时间开源的代码,发布一下: ARDBConfig On the iOS, provide a database table structure update mechanism, ensure that the user in any version of the installer, the database structure to ensure adapter. (在iOS上,提供一个数据库表结构更新的机制,保证用户无论从哪个版本安装程序,数据库结构保证适配.) 如:用户A的数据库版

java中生成流水号的一个例子(使用关系型数据库)

在实际的开发中,可能会有根据一定的规则生成流水号的需求(比如根据根据公司编码和日期生成4位流水号)我们可以把公司和日期联合起来作为一个业务编码,把这个业务编码和序列的值存储到数据库中,每次需要生成流水号的时候根据公司和日期联合起来生成的这个业务编码去数据库里边去查,若有记录的话就把记录的话就把对应的序列值返回,然后序列的值加一,若根据对应的业务编码查询不到相应的记录就把流水号对应的最小的值返回,然后在数据库中插入相应的记录 这种场景使用类似BerkeleyDB这种K,Value对数据库来实现是最

msql_createdb: 建立一个新的 mSQL 数据库。

mcrypt_ecb: 使用 ECB 将资料加/解密. mcrypt_get_block_size: 取得编码方式的区块大小. mcrypt_get_cipher_name: 取得编码方式的名称. mcrypt_get_key_size: 取得编码钥匙大小. mcrypt_ofb: 使用 OFB 将资料加/解密. md5: 计算字符串的 MD5 哈稀. mhash: 计算哈稀值. mhash_count: 取得哈稀 ID 的最大值. mhash_get_block_size: 取得哈稀方式的区块