PDO改造php数据库管理类

虽然说开发的项目供内部使用可是却很容易暴露一些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']);
    }
}
感觉这么封装还是不够好。。。扩展性不足。。。有好的办法会接着添加。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值