为PHP模块添加SQL SERVER2012数据库的步骤详解
作者:杏雨1969 发布时间:2024-05-13 09:53:57
一、系统要求
操作系统: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
来源:https://blog.csdn.net/weixin_43727933/article/details/115273664


猜你喜欢
- 原文地址:How to write Dockerfiles for Python Web Apps原文作者:Praveen Durairaj
- 偶写的几个ASP字符串处理函数,用于文章分页的小玩意函数名:StrLen作 用:取得字符串长度(汉字为2)参 
- 在程序的开发过程中,处理分页是大家接触比较频繁的事件,因为现在软件基本上都是与数据库进行挂钓的。但效率又是我们所追求的,如果是像原来那样把所
- 我们可使用Haskeys属性判别每个条目是否为一个集合,遍历完整的Request.Cookies集合,以来取得所有cookie的列表及其值:
- 今天在使用ORDER BY的过程中出现了一点问题,发现之前对ORDER BY理解是错误的。 之前在w3s网站上看到ORDER BY的用法,以
- 这两天做了一个判断浏览器类型和版本号的业务,记录下相关的js代码: function allinfo(){ var ua = navigat
- 已知有一个XML文件(bookstore.xml)如下:<?xml version="1.0" encoding=
- 代码代码很简单,主要是为了熟悉Selenium这个库的函数,为后续的短信轰炸做个铺垫from selenium import webdriv
- django在使用外键ForeignKey的时候,会自动给当前字段后面添加一个后缀_id。正常来说这样并不会影响使用。除非你要写原生sql,
- 表单输出选项{{ form.as_table }}:以表格形式加载表单元素{{ form.as_p }}:以段落形式加载表单元素{{ for
- 搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数
- 当“ 页面重构工程师 ”这个职位的面试官也蛮长一段时间了,跟前两年比起来,总的来说来应聘的同学能力在很大程度上有了提高,记得两年前的一场招聘
- tensor计算三通道均值今天用pytorch处理图像时,涉及到了计算均值的问题,整理一下解决思路。第一种思路tensor转换为numpy再
- DataFrame的行和列:df[‘行’, ‘列’]Data
- 单向链表单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节
- 一、前言在开展接口测试或者是接口面试的过程中,我们会发现很多接口需要依赖前面的接口,需要我们动态从前面的接口返回中提取数据,也就是我们通常说
- 上次更新到pygame实现俄罗斯方块游戏(基础篇3)现在继续一、定义玩家类定义玩家类是为了便于进行手动和机器模式或各种不同机器人模式的混合使
- 前言Python是面向对象的程序设计(Object Oriented Programming)。面向对象的程序设计的一条基本原则是:计算机程
- 本文实例总结了PHP常用字符串函数用法。分享给大家供大家参考,具体如下:字符串函数explore使用一个字符串分割另一个字符串结果为数组&l
- 随着SaaS服务的流行,越来越多的人选择在各个平台上编写文档,制作表格并进行分享。同时,随着Markdown语法的破圈,很多平台开始集成支持