sqlserver2008及以上版本,微软废弃了对php自带扩展的支持,php5.3以上版本默认不再支持原有的sqlserver连接方式,需要安装微软官方提供的驱动以及sqlsrv、pdo_sqlsrv扩展。
1.安装Driver for SQL Server驱动
Microsoft ODBC Driver 11 for SQL Server
https://www.microsoft.com/zh-CN/download/details.aspx?id=36434
SQL server 2012 Native Client (Microsoft SQL Server 2012 Native Client ODBC driver) :
https://www.microsoft.com/zh-CN/download/details.aspx?id=50402
ODBC Driver 13版本,支持sqlserver2016:
https://www.microsoft.com/zh-CN/download/confirmation.aspx?id=50420
ODBC Driver最新及历史版本:
https://learn.microsoft.com/zh-cn/sql/connect/odbc/windows/release-notes-odbc-sql-server-windows?view=sql-server-ver16
根据需要下载对应版本,如果安装出现问题,要给Documents and Settings\<当前登录用户名>\Local Settings\Temp”文件夹的绝对控制权。添加everyone 安装后取消。
2.安装Microsoft Drivers for PHP for SQL Server
下载地址 https://www.microsoft.com/en-us/download/details.aspx?id=20098
SQLSRV30.EXE对应php5.3、php5.4
SQLSRV31.EXE 对应php5.5、php5.6
SQLSRV32.EXE 对应php5.4、php5.5、php5.6
SQLSRV40.EXE 对应php7.0
php7.*以上版本下载:
https://download.microsoft.com/download/6/D/6/6D6455E3-3F11-4B4C-AD4C-C90316061DE1/SQLSRV53.EXE
php7.*版本备用下载地址:https://github.com/Microsoft/msphpsql/releases
最新及历史版本:
https://learn.microsoft.com/zh-cn/sql/connect/php/release-notes-php-sql-driver?view=sql-server-ver16#previous-releases
操作方法:解压exe文件,里面会有nts和ts命名的文件,nts是非线程安全,ts是线程安全版本。拷贝对应php版本(一般是nts)的dll文件到php对应版本的ext目录。
3.修改php.ini
extension=php_pdo_sqlsrv_56_nts.dll
extension=php_sqlsrv_56_nts.dll
php7.*版本:
extension=pdo_sqlsrv
extension=sqlsrv
4.连接sqlsever示例
sqlsrv_connect取代mssql_connect函数
<?php $serverName = "127.0.0.1,1433"; //数据库服务器地址 $uid = "sa"; //数据库用户名 $pwd = "****"; //数据库密码 $connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"gps0310"); $conn = sqlsrv_connect($serverName, $connectionInfo); if( $conn == false) { echo "连接失败!"; var_dump(sqlsrv_errors()); exit; } else { echo "链接成功"; }
pdo方式连接
<?php $serverName = "127.0.0.1,1433"; $database = "database"; $uid = "sa"; $pwd = "****"; $conn = new PDO( "sqlsrv:server=$serverName; Database = $database", $uid, $pwd); $tsql = "SELECT [CompanyName] FROM SalesLT.Customer"; $getProducts = $conn->query( $tsql ); FormatErrors ($conn->errorInfo()); ?>
» 本文链接地址:https://blog.mydns.vip/1877.html
最新评论
我的站目前每天120个IP,其中刷的是100个。 不知道为什么升级到4H8G5M的标准服务器还是偶尔会崩,CPU占满,但是内存一般这种时候只占50%左右,这是为什么呢?max_children我也设
麻烦发下检测工具
让我下载