用单例模式写一个php数据库管理类

来源:互联网 发布:葫芦娃抢购软件 编辑:程序博客网 时间:2024/06/04 08:09

     用惯了CodeIgniter框架,现在突然要自己用原生php开发,还真有点不习惯。。。因为接口开发过程中需要进行数据库的操作。。于是参考一些资料建立自己的

数据库管理类: 

     首先建立数据库连接配置文件:db.config.php 

/*数据库配置文件*///开发用数据库define('DB_NAME', 'order');/** MySQL数据库用户名 */define('DB_USER', 'devuser');/** MySQL数据库密码 */define('DB_PASSWORD', 'devuser');/** MySQL主机名 */define('DB_HOST', 'localhost');/** 创建数据表时默认的文字编码 */define('DB_CHARSET', 'utf8');
要习惯于把一些常量写在一个单独的配置文件中,这样修改起来也比较方便....刚开始我开发的时候改来改去,真是一个麻烦啊。。。


然后使用单例模式开发一个简单的DBManager类: 

require_once("db.config.php");/** * Description of DBManager * 数据库连接类 * @author  */class DBManager {        private $conn=null;    public static $instance = null;        public function __construct(){        $this->conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die("DB Connection Error");        if(!mysql_select_db(DB_NAME,$this->conn)){              echo "失败";          }        mysql_query("set names utf8");     }    public static function getInstance(){        if(is_null(self::$instance)){            self::$instance =new DBManager();        }        return self::$instance;    }    public function executeSql($sql=null){        return mysql_query($sql);    }    public function insertData($sql){        mysql_query($sql) or die(mysql_error());    }}
在需要调用该数据库类的文件中:

 $dbm = DBManager::getInstance(); $sql = "select record_time,data from order_t where record_time>$start_time and record_time<$end_time"; $result = $dbm->executeSql($sql);
这样一个简单的单例模式开发的数据库连接类就可以使用了。。。。只要多思考,还有可以优化的地方。。


0 0
原创粉丝点击