PHP在windows、linux下链接sqlserver

Windows下

1、首先查看php的信息去下载对应的sqlserver
在这里插入图片描述
这里我使用的php7.2版本,sqlserver扩展的下载链接:https://github.com/Microsoft/msphpsql/releases

官方sqlserver扩展下载链接:https://www.microsoft.com/en-us/download/details.aspx?id=20098

5.x版本的sqlserver扩展下载链接:https://pan.baidu.com/s/1iXuf1ENuAmNy3F8hFAk68Q 提取码:idjm

sqlserver 对应的php版本图:
在这里插入图片描述
2、安装sqlserver扩展
找到phpinfo()中使用的php版本。如D:\phpStudy\PHPTutorial\php\php-7.2.1-nts\ext,然后把我们下载的sqlserver的扩展复制在这里。如图所示:
在这里插入图片描述
3、修改php.ini
在php.ini中加入
extension=php_pdo_sqlsrv_72_nts.dll
extension=php_sqlsrv_72_nts.dll

在这里插入图片描述
然后查看phpinfo会出现sqlerv的扩展:
在这里插入图片描述
4、加入驱动:msodbcsql.msi(微软的odbc for sqlserver)

下载链接:https://www.microsoft.com/en-us/download/details.aspx?id=50420
在这里插入图片描述
注意:这里的x86与x64是根据电脑系统判断的,不是根据php版本
4、连接sqlserver

前提是sqlserver可以外网连接。

$conn = sqlsrv_connect(‘localhost’, array(‘Database’ => ‘test’, ‘UID’ => ‘sa’ , ‘PWD’ => ‘123456’));

if( $conn == false){
  var_dump(sqlsrv_errors());exit;
}

$sql = “SELECT * FROM users”;

r e s u l t = @ s q l s r v q u e r y ( result = @sqlsrv_query( result=@sqlsrvquery(conn, $sql);
while ( r e = @ s q l s r v f e t c h a r r a y ( re = @sqlsrv_fetch_array( re=@sqlsrvfetcharray(result)) {
  var_dump($re);
}

host一般是ip+端口,如ip,1433 。ip与端口之间用,隔开

到此windows的sqlserve链接环境就搭建好了

LINUX环境sqlerver的搭建

在windows的环境搭建比较快速简单,一到linux就比较复杂了
步骤:1、先安装Freetds 2、开启扩展pdo_dblib

wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz

tar -zxvf freetds-patched.tar.gz

cd freetds-dev.1.00.234

总结:FreeTDS-0.91只支持7.1,其余都会默认为5.0。只有最新的FreeTDS-0.95,也就是对Sqlserver2008的最佳配置。

./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --enable-msdblib

make && make install

配置FreeTDS

cd …/

echo “/usr/local/freetds/lib/” > /etc/ld.so.conf.d/freetds.conf

ldconfig

验证FreeTDS版本

这一步非常重要,通过才可以继续,不然后面的步骤都是无意义的。

首先看看版本信息

/usr/local/freetds/bin/tsql -C

在这里插入图片描述
测试数据库是否联通

/usr/local/freetds/bin/tsql -H 数据库服务器IP -p 端口号 -U 用户名 -P 密码

3.添加PHP扩展mssql和pdo的pdo_dblib

说明:这2种扩展都可以达到相同的目的,选其一即可。

(1).增加PHP扩展mssql

cd /usr/php-5.5.28/ext/mssql/

linux下用phpize给PHP动态添加扩展

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds/

make && make install [1]: http(2).增加PHP扩展pdo的pdo_dblib

cd /usr/php-5.5.28/ext/pdo_dblib/

linux下用phpize给PHP动态添加扩展

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds/

make && make install

(3).在php.ini配置文件中增加.so

cd /usr/local/php/lib下的php.ini

增加:extension = “mssql.so”
extension =“pdo_dblib.so”

4).重启PHP FastCGI

killall php-fpm

/etc/init.d/php-fpm

在这里插入图片描述
pdo链接:
header(“Content-type: text/html; charset=utf-8”);
try {
$hostname = “172.16.15.122”;
$port = 1433;
$dbname = “myserver”;
$username = “sa”;
$pw = “azy@123”;
KaTeX parse error: Undefined control sequence: \PDO at position 11: dbh = new \̲P̲D̲O̲("dblib:host=hostname: p o r t ; d b n a m e = port;dbname= port;dbname=dbname",“ u s e r n a m e " , " username"," username","pw”);
} catch (\PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . “\n”;
exit;
}

    $stmt = $dbh->prepare("select top 1 * from AlarmEvent order by armid desc");
    $stmt->execute();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值