今天要使用PHP了,以前是在Windows 7-64位和Windows10神州网信版的计算机上部署PHP应用的,略微有些不同,想着PHP在Windows Server 2016上也应该差不多。
可实际情况却是差别很大了。
在Windows 7-64位和Windows10神州网信版上,我的写法是:
$EisConn = new PDO( "sqlsrv:Server=IP地址;Database=数据库名称", '用户名称', '密码' );
if( $EisConn ){
$EisConn->query("set names 'utf8';");//设置字符集
}else{
echo '链接MS SQL Server 数据库失败!';
}
到Windows Server 2016这样写却报错,这个错误折腾了很长时间,需要先下载和安装驱动,然后才能编写连接代码。
不停地到网上搜索正确写法,最后找到了:
$DBConn = new PDO( "sqlsrv:Server=IP地址;Database=数据库", '用户名', '密码' );
$DBConn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$DBConn->setAttribute(PDO::SQLSRV_ATTR_ENCODING,PDO::SQLSRV_ENCODING_UTF8);//设置语言集
if( !$DBConn ){
echo '连接MS SQL Server数据库失败!';
die( print_r( $e->getMessage() ) );
}
注意使用phpinfo()查看具体信息时,PDO部分的信息:
PHP的版本是PHP Version 7.4.23。
不容易啊......
微软官网关于PHP连接MS SQL Server的地址: