php链接sqlserver类

来源:互联网 发布:php分页步骤 编辑:程序博客网 时间:2024/06/06 18:27
<?phpclass sqlsrv{       private $error_log = array();    private $sql_log = array();    private $query_id;    private $num_rows;    private $conn;private $server=".";private $userid="sa";private $password="sa";private $database="db";       //connection    function sqlsrv() {    }function open(){$this->conn = @sqlsrv_connect($this->server, array('UID' => $this->userid ,'PWD'=> $this->password, 'Database' => $this->database));        if($this->conn === false) {            $this->error_log[] = sqlsrv_errors();            die();        }}function close(){sqlsrv_close($this->conn);}       //query source    function query($sql,$params=array(),$open_close=1){if($open_close){$this->open();}$array=array();    for($i=0;$i<count($params);$i++) {if(is_array($params[$i])){$array[$i]=array($this->convert2gbk($params[$i][0]),$params[$i][1]);}else{  $array[$i] =array($this->convert2gbk($params[$i]),SQLSRV_PARAM_IN);}        }        $stmt = sqlsrv_query($this->conn, $sql,$array);        $this->sql_log[] = $sql;$res=false;        if($stmt === false) {            $this->error_log[] = sqlsrv_errors();        } else {            $this->query_id = $stmt;            $res=$this->num_rows = $this->affectedRows();        }if($open_close){$this->close();}return $res;    }       //fetch data    function fetch_all($sql,$params=array(),$open_close=1) {if($open_close){$this->open();}        $this->query($sql,$params,0);        $data = array();        while($row = @sqlsrv_fetch_array($this->query_id)) {            $data[] = $row;        } foreach ($data as $key => $value) {            foreach ($value as $key2 => $value2) {                @$data[$key][$key2] = $this->convert2utf8($value2);            }        }if($open_close){$this->close();}        return $data;    }    // $DB->count(select   *   from  users)    function fetch_one($sql,$params=array(),$open_close=1){if($open_close){$this->open();}        $this->query($sql,$params,0);        @$res= sqlsrv_fetch_array($this->query_id);if(is_array($res)){foreach ($res as $key => $value) {@$res[$key] = $this->convert2utf8($value);}        }if($open_close){$this->close();}return $res;    }    // $DB->count(select   count(*)   from  users)    function count($sql,$params=array(),$open_close=1){   if($open_close){$this->open();}        $count=$this->fetch_one($sql,$params,0);        $res= $count[0];if($open_close){$this->close();}return $res;    }       function affectedRows() {        $res=($this->query_id) ? @sqlsrv_num_rows($this->query_id) : false;if($res==false){$res=($this->query_id) ? @sqlsrv_rows_affected($this->query_id) : false;}return $res;    }function convert2utf8($str)    {        return iconv("gbk","utf-8",$str);    }    function convert2gbk($str)    {        return iconv("utf-8","gbk",$str);    }}?>

原创粉丝点击