PHP连接到MSSQL2005/2008数据库的配置与操作 [PHP]

来源:互联网 发布:excel如何拆分数据公式 编辑:程序博客网 时间:2024/06/14 01:11

今天尝试了一下用PHP连接MSSQL2008,总结一下。

1.首先得安装php扩展

由于php5.2中php_mssql.dll是给MSSQL2000用的,要使用MSSQL2005/2008必须得下载SQL Server Driver for PHP扩展包,尝试了N次在microsoft网站上看的是3.0版本,下载下来之后是个exe文件,还打不开,很是头痛。于是只好退求其次去找2.0版,终于在csdn上面找到了,居然标价要5点积分(上传这个资源的人真是太黑了。。。),没办法只好怀着心痛痛下载下来。打开压缩包,里面有很多dll文件。

从里面找到适合你当前php版本的扩展: php5.2的就用带有"52"字样的文件,php5.3版本的就用带有"53"字样的文件; 如果你的WEB服务器用的是IIS,就使用vc9的,如果是Apache就用vc6编译的; 
比如:
我当前的开发环境是WAMP(php5.2.9,apache2.2.21),那么我就选用php_sqlsrv_52_ts_vc6.dll , php_pdo_sqlsrv_52_ts_vc6.dll 这两个文件,复制到php的扩展文件目录ext/下面。

2.然后就是修改php.ini文件了,

在php.ini文件中加上如下两行:
extension=php_sqlsrv_52_ts_vc6.dll
extension=php_pdo_sqlsrv_52_ts_vc6.dll
将 ;extension=php_pdo.dll 前面的;去掉。重新启动APACHE。

3.再写到MSSQL2008的连接的php类来验证一下

下面是我写的一个简单类,写只了一个查询记录的方法,其它的功能大家可以自己添加。

<?php
/*
例子:
//定义参数
$db_info=array(
    'server'=>'WIN-0G9L24HRC8S', //数据库服务器地址
    'user'=>'abc', //数据库用户名
    'password'=>'abc', //数据库用户密码
    'databases'=>'CRS主数据库', //数据库名
); 
//数据库对象
$db = new mssql2008($db_info);
//取得记录
$rs = getrs($sql='SELECT TOP 100 * FROM caf_AppModule');

*/

class mssql2008
{
    private $db; //数据库操作对象
    //数据库信息
    private $db_info=array(
        'server'=>'localhost',
        'user'=>'sa',
        'password'=>'sa',
        'databases'=>'',
    ); 
    
    //初使化连接数据库
    public function __construct($info=array())
    {
        $db_info = array("UID"=>$info['user'], "PWD"=>$info['password'], "Database"=>$info['databases']);
        $db = sqlsrv_connect( $info['server'], $db_info);        
        if($db===false){
            echo "连接失败!";
            die( print_r( sqlsrv_errors(), true));
        }else{
            $this->db_info = $info;
            $this->db = $db;
        }
    }
    
    //执行sql语句
    public function query($sql='')
    {
        $sql = trim($sql);
        if(!isset($this->db) || $sql==''){
            return array();
        }
        
        $query = sqlsrv_query($this->db,$sql);
        if($query === false){
             echo "Error in query preparation/execution.\n";
             die( print_r( sqlsrv_errors(), true));
        }else{
            return $query;
        }
    }

    //查询记录
    public function getrs($sql='')
    {
        $query = $this->query($sql);
        $rs = array();
        //遍历出记录集
        while($row = sqlsrv_fetch_array($query,SQLSRV_FETCH_ASSOC)){
            $rs[] = $row;
        }
        return $rs;
    } 
}
?>

对了,差点忘了一件大事: SQL Server Driver for PHP 2.0.rar 扩展包, 我把它传到我空间来了这样可以随意下载吧,不然大家就得去csdn花5点积分了。。。 (看出我是多好的人了吧。^-^!)

0 0