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

时间:2022-12-11 08:52:07

     用惯了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);
这样一个简单的单例模式开发的数据库连接类就可以使用了。。。。只要多思考,还有可以优化的地方。。