下载 Microsoft Drivers for PHP for SQL Server 并配置
-
在window sandbox中执行安装文件(实际上只需要dll文件,所以不在主机安装),并根据php版本和是否Thread Safety取用需要的dll文件,我取用的是【php_pdo_sqlsrv_72_ts_x64.dll】和【php_sqlsrv_72_ts_x64.dll】
-
两个dll复制到D:\xampp\php\ext并配置php.ini,phpinfo查看,会出现pdo_sqlsrv的信息
;KSalomo Sqlserver extension extension=php_pdo_sqlsrv_72_ts_x64.dll extension=php_sqlsrv_72_ts_x64.dll
测试范例及注意事项
-
直接使用sqlsrv测试
$serverName = "localhost"; //数据库服务器地址 $uid = "sa"; //数据库用户名 $pwd = "123"; //数据库密码 $connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"yourDatabaseName"); $conn = sqlsrv_connect($serverName, $connectionInfo); $data= sqlsrv_query($conn,"select * from yourTable"); if($data==true){ while($row=sqlsrv_fetch_array($data,SQLSRV_FETCH_ASSOC)) { echo empty($row['DisplayName'])?'2':iconv("GBK", "UTF-8", $row['DisplayName'])."<br/>"; } }
-
使用PDO测试
$db = new PDO("sqlsrv:Server=localhost;Database=yourDatabaseName", "sa", "123"); $sql = "SELECT * FROM yourTable"; $res = $db->query($sql); while ($row = $res->fetch()){ print_r($row); }
-
使用ThinkPHP5测试,一定注意database.php的配置方式,稍有出入就查询不成功
-
database.php,仅列出部分必须配置项
<?php return [ // 数据库类型 'type' => 'sqlsrv', // 服务器地址,不可使用127.0.0.1,否则报错:SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]命名管道提供程序: 无法打开与 SQL Server 的连接 [5]. 'hostname' => 'localhost', // 数据库名 'database' => 'yourDatabaseName', // 用户名 'username' => 'sa', // 密码 'password' => '123', // 端口,保留空,不可填1433,否则报错:SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]TCP 提供程序: 由于目标计算机积极拒绝,无法连接。 'hostport' => '', // 连接dsn 'dsn' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'GBK' ];
-
测试代码
Db::query('SELECT * FROM yourTable');
-