PDO改造php数据库管理类

来源:互联网 发布:易语言刷枪源码 编辑:程序博客网 时间:2024/06/01 08:36

虽然说开发的项目供内部使用可是却很容易暴露一些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
原创粉丝点击