PDO操作

<?php
    class PDO_Oper
    {
        private $hostname='127.0.0.1;';
            private $username='root';
            private $password='52ebook';
            private $dbname='b_work';
            private $conn;
            private static $fetch_mode;
            function __construct()
            {
                $this->conn=new PDO('mysql:host='.$this->hostname."dbname=".$this->dbname,$this->username,$this->password);
                //设置编码
                $this->conn->exec("set names utf8");
            }
            //查询整个数据集,管理字段数据
            public function QueryAll($sql,$Fetch_mode)
            {
                $result=$this->conn->query($sql);
                $result->setFetchMode(self::FetchAction('num'));
                return $result->fetchAll();
            }
            //执行删改操作
            public function ExecSql($sql)
            {
                
                return $this->conn->Exec($sql);
            }
            //数据集模式
            public static function FetchAction($fmode)
            {
                switch($fmode)
                {
                    case "assoc";
                    self::$fetch_mode=PDO::FETCH_ASSOC;
                    break;
                    case "num";
                    self::$fetch_mode=PDO::FETCH_NUM;
                    break;
                    case "object";
                    self::$fetch_mode=PDO::FETCH_OBJ;
                    break;
                    case "both";
                    self::$fetch_mode=PDO::FETCH_BOTH;
                    break;
                    default:
                    self::$fetch_mode=PDO::FETCH_ASSOC;
                    break;
                }
                return self::$fetch_mode;
            }
            //防止sql注入
            public function PreExecSql($sql,$par_array)
            {
                try{
                $pare=$this->conn->prepare($sql);
                 $pare->execute($par_array);
                }
                catch(Exception $exception)
                {
                    echo $exception->getMessage();
                }
            }
            
            //绑定参数,防止sql注入
            public function PreParamExecSql($sql,$par_array)
            {
                try{
                $this->conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
                $pare=$this->conn->prepare($sql);
                for($n=0;$n<sizeof($par_array);$n++)
                {
                    foreach($par_array[$n] as $key=>$value)
                    {
                    echo $key."=>".$value;
                    $pare->bindValue($key,$value);
                    }
                    $pare->execute();
                } 
                }
                catch(PDOException $exception)
                {
                    echo $exception->getMessage();
                }
            }
    }
?>
posted @ 2016-08-27 16:56  方白衣  阅读(205)  评论(0编辑  收藏  举报