设为首页收藏本站

红色代码编程论坛

 找回密码
 加入我们
搜索
查看: 345|回复: 1

PHP 操作SQL Server 2008/2012 以及thinkphp 的配置

[复制链接]
发表于 2018-1-10 20:22 | 显示全部楼层 |阅读模式
PHP操作SQL Server驱动,微软官方提供3个版本,Version 2.0 和 Version 3.0 和 Version 4.0 相关的附件,在2楼。
注意注意注意注意:
1、
32位的和64位的也有不同。微软官方下载的似乎只支持32位?我的64位无法使用。不知道是不是我本地的其它原因。网上有人放出了64位的。我本地测试了成功。后面会上传上来。如果从微软下载的无法使用,也可以从百度网盘下载:https://pan.baidu.com/s/1dDIRpJF
2、
并不是安装完了驱动就可以直接使用。有的驱动还需要安装Native Client后才能使用。下面也给出了官方下载地址。
关于系统支持,可以访问微软官方网站(其实要求并不是很严格,比如我的win10就支持,但是支持系列列表里却没有):https://docs.microsoft.com/en-us ... -the-php-sql-driver
3、下面的 php_sqlsrv_52  这个52,也就是PHP版本。
4、如果你在用thinkphp,那么在thinkphp中的配置方法:
        'DB_TYPE'               =>  'sqlsrv',                             // 数据库类型
        //'DB_TYPE'               =>  'mssql',                             // 数据库类型 这个已经不支持了。虽然tp的手册中说可以。TP3.2.3的驱动里已经没有了,所以注释掉,用上面那一个
        'DB_HOST'               =>  '',                         // 服务器地址
        'DB_NAME'               =>  '',                        // 数据库名
        'DB_USER'               =>  '',                             // 用户名
        'DB_PWD'                =>  '',                        // 密码
        'DB_PORT'               =>  '',                                // 端口

如果你有DB_DSN的配置,先注释掉。




5、具体步骤为:
a、下载合适的驱动(php_sqlsrv_xx_xx.dll)
b、把这个dll放在extension的目录下(在php.ini里有配置。可以打开后搜索extension_dir找到是哪个目录)注意,放驱动进目录的时候,是2个文件,一个php_sqlsrv_xxx_xxx.dll,还一个是 php_pdo_sqlsrv_xxx_xxx.dll,注意版本号要相同。
c、在php.ini中,添加扩展。你一定记得mysql是怎么启用的吧?extension=php_mysql.dll,类似这样的语句一大堆在一起,后面追加上:
extension=php_sqlsrv_xxx_xxx.dll
extension=php_pdo_sqlsrv_xxx_xxx.dll
(把  xxx  改成你的具体的文件名)
d、重启web服务。(IIS 或者 apache 或者nginx等等)或者重启服务器。






Version 2.0 版本支持PHP版本如下:
Driver file
PHP version
Thread safe?
Use with PHP .dll
php_sqlsrv_53_nts_vc6.dll
php_pdo_sqlsrv_53_nts_vc6.dll
5.3
no
php5.dll
php_sqlsrv_53_nts_vc9.dll
php_pdo_sqlsrv_53_nts_vc9.dll
5.3
no
php5.dll
php_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc6.dll
5.3
yes
php5ts.dll
php_sqlsrv_53_ts_vc9.dll
php_pdo_sqlsrv_53_ts_vc9.dll
5.3
yes
php5ts.dll
php_sqlsrv_52_nts_vc6.dll
php_pdo_sqlsrv_52_nts_vc6.dll
5.2
no
php5.dll
php_sqlsrv_52_ts_vc6.dll
php_pdo_sqlsrv_52_ts_vc6.dll
5.2
yes
php5ts.dll





Version 3.0 版本支持PHP版本如下:
Driver file
PHP version
Thread safe?
Use with PHP .dll
php_sqlsrv_53_nts.dll
php_pdo_sqlsrv_53_nts.dll
5.3
no
php5.dll
php_sqlsrv_53_ts.dll
php_pdo_sqlsrv_53_ts.dll
5.3
yes
php5ts.dll
php_sqlsrv_54_nts.dll
php_pdo_sqlsrv_54_nts.dll
5.4
no
php5.dll
php_sqlsrv_54_ts.dll
php_pdo_sqlsrv_54_ts.dll
5.4
yes
php5ts.dll



Version 4.3 版本支持PHP版本如下:
Driver file
PHP version
Thread safe?
Use with PHP .dll
php_sqlsrv_7_nts_x86.dll

php_pdo_sqlsrv_7_nts_x86.dll
7.0
no
32-bit php7.dll
php_sqlsrv_7_ts_x86.dll

php_pdo_sqlsrv_7_ts_x86.dll
7.0
yes
32-bit php7ts.dll
php_sqlsrv_7_nts_x64.dll

php_pdo_sqlsrv_7_nts_x64.dll
7.0
no
64-bit php7.dll
php_sqlsrv_7_ts_x64.dll

php_pdo_sqlsrv_7_ts_x64.dll
7.0
yes
64-bit php7ts.dll
php_sqlsrv_71_nts_x86.dll

php_pdo_sqlsrv_71_nts_x86.dll
7.1
no
32-bit php7.dll
php_sqlsrv_71_ts_x86.dll

php_pdo_sqlsrv_71_ts_x86.dll
7.1
yes
32-bit php7ts.dll
php_sqlsrv_71_nts_x64.dll

php_pdo_sqlsrv_71_nts_x64.dll
7.1
no
64-bit php7.dll
php_sqlsrv_71_ts_x64.dll

php_pdo_sqlsrv_71_ts_x64.dll
7.1
yes
64-bit php7ts.dll



Version 4.0 版本支持PHP版本如下:
Driver file
PHP version
Thread safe?
Use with PHP .dll
php_sqlsrv_7_nts_x86.dll

php_pdo_sqlsrv_7_nts_x86.dll
7.0
no
32-bit php7.dll
php_sqlsrv_7_ts_x86.dll

php_pdo_sqlsrv_7_ts_x86.dll
7.0
yes
32-bit php7ts.dll
php_sqlsrv_7_nts_x64.dll

php_pdo_sqlsrv_7_nts_x64.dll
7.0
no
64-bit php7.dll
php_sqlsrv_7_ts_x64.dll

php_pdo_sqlsrv_7_ts_x64.dll
7.0
yes
64-bit php7ts.dll






让PHP能正常的操作SQL Server,除了上述的PHP扩展,还需要安装 SQL Server Native Client,Version 2.0 需要 Microsoft® SQL Server® 2008 Native Client,Version 3.0 需要 Microsoft® SQL Server® 2012 Native Client。
Version 2.0 相关下载如下:
1、Microsoft® SQL Server® 2008 Native Client
[微软官方]下载:X86版本   X64版本
2、PHP扩展 php_sqlsrv

Version 3.0 相关下载如下:
1、Microsoft® SQL Server® 2012 Native Client
[微软官方]下载:X86版本   X64版本
2、PHP扩展 php_sqlsrv



以 PHP5.3.29 操作SQL Server2008 为例,当前操作系统为 Windows 7 sp1(64位):
一、软件安装
1、下载安装 X64版本 的 Microsoft® SQL Server® 2012 Native Client。
2、下载 Version 3.0 相关软件。我本地用的是 xampp运行PHP,即 Apache以非fcgi模式运行PHP,故需要选择 “线程安全版”的 php_sqlsrv_53_ts.dll,并拷贝到 PHP的ext目录。
在 php.ini 中配置下扩展(先把下载的扩展放在ext目录下(这个目录是php.ini里配置的扩展的目录)):
extension=php_sqlsrv_53_ts.dll

如果你是其它版本,比如是5.6.x,那就要下载56_ts 或者 nts 的。上面都有说明。

Php 代码,双击复制代码
<?php
$dbHost = "192.168.137.99";
$uid = "blog.snsgou.com";
$pwd = "snsgou08808";
$dbName = 'sg_user';
$charset = 'utf-8';
 
$connectionInfo = array("UID" => $uid, "PWD" => $pwd, "Database" => $dbName, 'CharacterSet' => $charset);
$conn = sqlsrv_connect($dbHost, $connectionInfo);
 
if ($conn == false) {
    echo "连接失败!";
    die(print_r(sqlsrv_errors(), true));
}
 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 1.查询
$sql = "SELECT TOP 10 * FROM t_user";
$query = sqlsrv_query($conn, $sql);
while ($row = sqlsrv_fetch_array($query)) {
    echo $row['Id'] . "-----" . $row['Email'] . "<br/>";
}
 
// 2.插入、更新
$sql = "insert into [SnsClass]([year],[month],[day],[className]) values ('2014','02','05', '初三(3)版')";
$query = sqlsrv_query($conn, $sql);
 
?>






 楼主| 发表于 2018-1-10 20:26 | 显示全部楼层

这个附件是支持64位的。也就是1楼提到的百度网盘的下载的那个。





如果有如下 提示:

This extension requires the Microsoft SQL Server 2012 Native Client. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712

则需要下载Native Client,1楼有官方的下载地址。我就不贴了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入我们 用百度帐号登录

x

积分兑换实物排行

您需要登录后才可以回帖 登录 | 加入我们 用百度帐号登录

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|红色代码编程论坛 ( 鲁ICP备11027229号  

GMT+8, 2018-12-17 22:46 , Processed in 0.125000 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表