为PHP模块添加SQL SERVER2012数据库
一、系统要求
操作系统:Windows 2012 R2
数据库:SqlServer2012
web服务器:APACHE =>httpd-2.4.46-o111j-x64-vc15
PHP模块:PHP=>php-7.4.16-Win32-vc15-x64
二、下载驱动
2.1下载 Microsoft Drivers for PHP for SQL Server
下载网址:http://docs.microsoft.com/zh-cn/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver15
下载后是一个EXE文件如下图所示。双击"SQLSRV59.EXE"
将其解压到一个文件夹中如下图所示:
解压后的文件如下图所示.解压出来的是DLL动态连接库文件
2.2 下载 ODBC Driver for SQL Server
下载地址:http://docs.microsoft.com/zh-cn/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver15
笔者用的是64位系统,如果是32们系统请下载对应的版本
三、配置PHP模块与php.ini文件
微软对PHP文件的系统要求请参考以下地址:http://docs.microsoft.com/zh-cn/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-ver15
必须通过相应的 PHP 版本启用驱动程序文件的正确版本。 有关不同驱动程序文件的信息,请参阅驱动程序版本。 若要下载驱动程序,请参阅下载 Microsoft Drivers for PHP for SQL Server。 要了解如何配置适用于 PHP 的驱动程序,请参阅加载 Microsoft Drivers for PHP for SQL Server。
Web 服务器是必需的。 必须将 Web 服务器配置为运行 PHP。 有关使用 IIS 托管 PHP 应用程序的信息,请参阅 PHP 网站上的教程。
3.1从下图可以看到ODBC驱动程序11和13已经不在支持PHP5.9以上的版本,如果你下载的PHP模块是5.9以上的建议下载ODBC17以上的版本
3.2 PHP版本有线程安全问题如果你是用IIS要用线程安全否如果是APACHE版本用线程安全版本
笔者根据自己的系统要求采用红框中的版本,系统要求见上述。
3.3 将下载解压的驱动COPY到PHP文件夹的ext文件中
将系统要求的两个文件复制到PHP模块文件夹中的ext文件夹下,笔者的PHP文件夹在C:盘下路经为c:/php
3.4 安装ODBC文件
ODBC文件安装非常简单,点下一步下一走即可安装成功。为了做到说明详尽笔者上一张图以说明
3.5 配置php.ini 文件
3.51 设置数据驱动扩展路径
为了让PHP找到数据库驱动程序需要对数据库扩展路径进行设置以下是微软对加载驱动程序的说明笔者复述如下:
将驱动程序文件移动到扩展目录中
驱动程序文件必须位于 PHP 运行时可以找到它的目录中。 最简单的方法是将驱动程序文件放入默认的 PHP 扩展目录中。要查找默认目录,只需在 Windows 上运行 php -i | sls extension_dir 或在 Linux/macOS 上运行 php -i | grep extension_dir。 如果使用的不是默认扩展目录,请使用 extension_dir 选项在 PHP 配置文件 (php.ini) 中指定一个目录。 例如,在 Windows 上,如果已将驱动程序文件置于 c:\php\ext 目录中,则将以下行添加到 php.ini 中:
extension_dir = "c:\PHP\ext"
以下是笔者的设置
下面展示一些 内联代码片
。
extension_dir = "./"
;On windows:
extension_dir = "c:/php/ext"
3.5.2 设置驱动启动加载
以下是微软给出的解释
在 PHP 启动时加载驱动程序
若要在 PHP 启动时加载 SQLSRV 驱动程序,首先要将驱动程序文件移动到扩展目录中。 然后,按如下步骤操作:
要启用 SQLSRV 驱动程序,请通过向扩展部分添加以下行并适当地更改文件名来修改 php.ini :
在 Windows 上:
extension=php_sqlsrv_72_ts.dll
在 Linux 上,如果已经下载用于分发的预生成二进制文件:
extension=php_sqlsrv_72_nts.so
如果已从源代码或使用 PECL 编译了 SQLSRV 二进制文件,则会将其命名为 sqlsrv.so:
extension=sqlsrv.so
以下是笔者的设置
下面展示一些 内联代码片
。
extension = php_pdo_sqlsrv_74_ts_x64.dll
extension = php_sqlsrv_74_ts_x64.dll
3.5.3重新启动 Web 服务器。
以上设置好了重新启动Web 服务器, 新建一个文件命名为phpinfo.php观察设置是否正常
输入如下代码 内联代码片
。
<?php
echo phpinfo();
?>
在浏览器中打开如果出现以上内容说明数据库设置正常
四、连接数据库
4.1新建一个文件命名为ConnectData.php 输入以下内容
下面展示一些 内联代码片
。
<?php
$serverName = "localhost"; //数据库服务器地址
$uid = "sa"; //数据库用户名
$pwd = "Xnqq0971"; //数据库密码
$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"SecondSubjects");//, "Database"=>"SecondSubjects"
$conn = sqlsrv_connect($serverName, $connectionInfo);
if( $conn == false)
{
echo "连接失败!";
var_dump(sqlsrv_errors());
exit;
}else{
echo "链接成功";
}
4.2 用浏览器打开
如果连接成功说明数据库设置完成
五、总结
如果phpinfo.php 文件中Registered PHP Streams选项中没有sqlsrv 选项,但有pdo_sqlsrv选项说明
驱动程序安装正确,ODBC要安装新的版本。
如果pdo_sqlsrv选项没有,说明驱动程序安装不对需要查一下对应的版本。具体的要查看Microsoft Drivers for PHP for SQL Server 系统要求一文地址:http://docs.microsoft.com/zh-cn/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-ver15