您的位置:首页 > 编程语言 > PHP开发

PDO改造php数据库管理类

2014-01-07 17:05 232 查看
虽然说开发的项目供内部使用可是却很容易暴露一些sql注入的麻烦。。为了保证系统的安装性同时使用PDO可以方便的进行预处理和调用不同数据库

驱动因此决定改造原来的php数据库管理类:给出大概的代码以供以后参考。。。

include "db.config.php";
/**
* Description of DBManager
* 数据库连接类
* @author Wujindou
*/
class DBManager {

private $conn=null;
public static $instance = null;

public function __construct(){
try{
$this->conn =  new PDO('mysql:host=172.16.89.85;dbname=order_db',DB_USER,DB_PASSWORD);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->conn->query("set names utf8");
}catch(PDOException $e){
echo 'Connection failed: ' . $e->getMessage();
}

}
public static function getInstance(){
if(is_null(self::$instance)){
self::$instance =new DBManager();
}
return self::$instance;
}
public function executeSql($sql=null){
return $this->conn->query($sql);
}
public function insertData($sql){
$this->conn->query($sql) or die(mysql_error());
}
public function selectSql($psmt,$params =array()){
$stmt = $this->conn->prepare($psmt);
$stmt->execute($params);
return $stmt;
}
}
简单调用方法:

include  "DBManager.php";
$param = xxxx;
$dbm = DBManager::getInstance();
$sql = "select 。。。。from xxxxx fild>=??";
$result = $dbm->selectSql($sql,array($param));
echo "<pre>";
if($result->rowCount()){
while($row = $result->fetch()){
print_r($row);				//array_push($return_data,$row['data']);
}
}
感觉这么封装还是不够好。。。扩展性不足。。。有好的办法会接着添加。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: