php面象对象数据库操作类实例


Posted in PHP onDecember 02, 2014

本文实例讲述了php面象对象数据库操作类。分享给大家供大家参考。

具体实现代码如下:

//此处构造一个数据库操作类,封装所有数据库操作 

//可以扩展便于后台管理程序的使用 

Class MySQLDB  

{  

   var $host;  

   var $user;  

   var $passwd;  

   var $database; 

   var $conn;  

 

   //利用构造函数实现变量初始化  

   //同时连接数据库操作 

   function MySQLDB($host,$user,$password,$database)  

   {  

      $this->host = $host;  

      $this->user = $user;  

      $this->passwd = $password;  

      $this->database = $database;  

      $this->conn=mysql_connect($this->host, $this->user,$this->passwd) or  

     die("Could not connect to $this->host");  

      mysql_select_db($this->database,$this->conn) or  

     die("Could not switch to database $this->database");  

   }  

 

   //该函数用来关闭数据库连接 

   function Close()  

   {  

      MySQL_close($this->conn);  

   }  

 

   //该函数实现数据库查询操作 

   function Query($queryStr)  

   {  

      $res =Mysql_query($queryStr, $this->conn) or  

      die("Could not query database");  

      return $res;  

   }  

 

   //该函数返回记录集 

   function getRows($res)  

   {  

      $rowno = 0;  

      $rowno = MySQL_num_rows($res);  

      if($rowno>0)  

      {  

         for($row=0;$row<$rowno;$row++ )  

         {  

            $rows[$row]=MySQL_fetch_array($res); 

            //本来为MySQL_fetch_row,但是不能以数组的方式来提取,只能用索引 

            //这样可以用索引和名称,更为方便 

         }  

         return $rows;  

      }  

    }  

 

    //该函数取回数据库记录数 

    function getRowsNum($res)  

    {  

       $rowno = 0;  

       $rowno = mysql_num_rows($res);  

       return $rowno; 

    }  

 

 //该函数返回数据库表字段数 

 function getFieldsNum($res) 

 { 

    $fieldno = 0; 

    $fieldno = mysql_num_fields($res); 

    return $fieldno; 

 } 

 

 //该函数返回数据库表字段名称集 

 function getFields($res) 

 { 

      $fno = $this->getFieldsNum($res); 

      if($fno>0)  

      {  

         for($i=0;$i<$fno;$i++ )  

         {  

            $fs[$i]=MySQL_field_name($res,$i);//取第i个字段的名称 

         }  

         return $fs; 

      }  

 } 

}  

 

//使用时直接require该文件,然后实例化: 

 

$SqlDB = new MySQLDB("localhost","root","root","testdb"); 

 

$sql = "select * from tableX..."; 

 

$result = $SqlDB->Query($sql);//查询 

 

$rs = $SqlDB->getRows($result);//获得记录集 

 

$num = $SqlDB->getRowsNum($result);//获得记录数 

 

...剩下的操作就是循环取值, 

 

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

   echo($rs[$i]["字段名"]); 

} 

 

...

最后不要忘记关闭数据路连接
$SqlDB->Close();
当然这句可以不要,php会自动注销!但是这样能够养成一个好的习惯,最好还是加上!其他自己类推。

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
Sep 10 PHP
gd库图片下载类实现下载网页所有图片的php代码
Aug 20 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
Jun 18 PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
Jul 25 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
Aug 23 PHP
微信公众平台实现获取用户OpenID的方法
Apr 15 PHP
php自定义函数实现JS的escape的方法示例
Jul 07 PHP
深入了解PHP中的Array数组和foreach
Nov 06 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
Laravel多用户认证系统示例详解
Mar 13 PHP
PHP实现的支付宝支付功能示例
Mar 26 PHP
PHP实现的比较完善的购物车类
Dec 02 #PHP
Yii框架关联查询with用法分析
Dec 02 #PHP
phpstorm配置Xdebug进行调试PHP教程
Dec 01 #PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 #PHP
php页面函数设置超时限制的方法
Dec 01 #PHP
PHP实现抓取HTTPS内容
Dec 01 #PHP
php设置静态内容缓存时间的方法
Dec 01 #PHP
You might like
两款万能的php分页类
2015/11/12 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
Maps Javascript
2007/01/22 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
一百行JS代码实现一个校验工具
2019/04/30 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
Python图像灰度变换及图像数组操作
2016/01/27 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
Python正确重载运算符的方法示例详解
2017/08/27 Python
Python深度优先算法生成迷宫
2018/01/22 Python
Python在groupby分组后提取指定位置记录方法
2018/04/20 Python
好的Python培训机构应该具备哪些条件
2018/05/23 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
python numpy 反转 reverse示例
2019/12/04 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
2013/05/09 面试题
大学生优秀班干部事迹材料
2014/05/26 职场文书
学生会感恩节活动方案
2014/10/11 职场文书
师德师风自查材料
2014/10/14 职场文书
房产公证书样本
2015/01/23 职场文书
租赁协议书
2015/01/27 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
机关单位2016年创先争优活动总结
2016/04/05 职场文书