首页 > 开发 > PHP > 正文

PHP基于MySQL数据库实现对象持久层的方法

2024-05-04 22:36:36
字体:
来源:转载
供稿:网友

本文实例讲述了PHP基于MySQL数据库实现对象持久层的方法。分享给大家供大家参考。具体如下:

心血来潮,做了一下PHP的对象到数据库的简单持久层。

不常用PHP,对PHP也不熟,关于PHP反射的大部分内容都是现学的。

目前功能比较弱,只是完成一些简单的工作,对象之间的关系还没法映射,并且对象的成员只能支持string或者integer两种类型的。

成员变量的值也没有转义一下。。。

下面就贴一下代码:

首先是数据库的相关定义,该文件定义了数据库的连接属性:

<?php /*  * Filename: config.php  * Created on 2012-9-29  * Created by RobinTang  * To change the template for this generated file go to  * Window - Preferences - PHPeclipse - PHP - Code Templates  */   // About database   define('DBHOST', 'localhost'); // 数据库服务器   define('DBNAME', 'db_wdid'); // 数据库名称   define('DBUSER', 'root'); // 登陆用户名   define('DBPSWD', 'trb'); // 登录密码 ?> 

下面是数据库访问的简单封装:

<?php /*  * Filename: database.php  * Created on 2012-9-29  * Created by RobinTang  * To change the template for this generated file go to  * Window - Preferences - PHPeclipse - PHP - Code Templates  */   include_once("config.php");   $debug = false;   $g_out = false;   function out($s){     global $g_out;     $g_out .= $s;     $g_out .= "/r/n";   }   function db_openconnect(){     $con = mysql_connect(DBHOST, DBUSER, DBPSWD);          if(!mysql_set_charset("utf8", $con)){       out("set mysql encoding fail");     }     if (!$con){       out('Could not connect: ' . mysql_error());     }     else{       if(!mysql_select_db(DBNAME, $con)){         $dbn = DBNAME;         out("Could select database '$dbn' : " . mysql_error());      }       $sql = "set time_zone = '+8:00';";       if(!db_onlyquery($sql, $con)){         out("select timezone fail!" . mysql_error());       }     }     return $con;   }   function db_colseconnect($con){     mysql_close($con);   }   function db_onlyquery($sql, $con){     $r = mysql_query($sql, $con);     if(!$r){       out("query '$sql' :fail");       return false;     }     else{       return $r;     }   }   function db_query($sql){     $con = db_openconnect();     $r = db_onlyquery($sql, $con);     $res = false;     if($r){       $res = true;     }     db_colseconnect($con);     return $r;   }   function db_query_effect_rows($sql){     $con = db_openconnect();     $r = db_onlyquery($sql, $con);     $res = false;     if($r){       $res = mysql_affected_rows($con);       if($res==0){         $res = -1;       }     }     else{       $res = false;     }     db_colseconnect($con);     return $res;   }   function db_getresult($sql){     $con = db_openconnect();     $r = db_onlyquery($sql, $con);     $res = false;     if($r && $arr = mysql_fetch_row($r)){       $res = $arr[0];     }     db_colseconnect($con);     return $res;   }   function db_getarray($sql){     $con = db_openconnect();     $r = db_onlyquery($sql, $con);     $ret = false;     if($r){       $row = false;       $len = 0;       $ret = Array();       $i = 0;       while($arr = mysql_fetch_row($r)){         if($row == false || $len==0){           $row = Array();           $len = count($arr);           for($i=0;$i<$len;++$i){             $key = mysql_field_name($r, $i);             array_push($row, $key);           }         }         $itm = Array();         for($i=0;$i<$len;++$i){           $itm[$row[$i]]=$arr[$i];         }         array_push($ret, $itm);       }     }     db_colseconnect($con);     return $ret;   } ?>             
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表