0

0

php5.3.x连接MS SQL server2008

php中文网

php中文网

发布时间:2016-06-23 13:31:25

|

1161人浏览过

|

来源于php中文网

原创

开篇

因为毕设老师需求的原因,虚拟旅游网站要求的数据库必须使用ms sql server。

我最擅长的web编程语言是PHP,但是在PHP中链接MS SQL server是一件非常麻烦的事,我个人分析造成这种麻烦的原因:是因为使用PHP的一大优点就是免费,然而MS SQL server虽然图形化界面操作起来简单,但是其昂贵的授权费让人望而却步;加之MySQL不俗的性能和强大的社区支持,使得真正企业环境里,使用PHP + MS SQL server的人越来越少。

其实纵观网上的文章,之所以有人选择这样的组合(PHP + MS SQL server)是因为系统的遗留问题。比如php程序员要求在某企业网站上进行二次开发,或者企业原来就是用的MS SQL server数据库。总之,我经过十二小时的奋战,终于通信成功,现在把过程和经验记录如下。

1. 安装MS SQL server2008 express数据库

安装的过程比较简单。但是必须记住一点问题,安装时我们设置的??或者说是我们默认的??数据库实例名。

1.1 数据库默认的实例名

以MS SQL server2008 express为例,一般默认的实例名是 SQLEXPRESS。而我自行设置的是SQLSERVER,也就是sql server。

立即学习PHP免费学习笔记(深入)”;

1.2 设置数据库的登陆方式

我们一定要给sa用户设置一个密码,以便我们将来编写程序访问数据库时的方便。我个人设置的密码是”6个1“。

2. 登录数据库

利用管理工具:SQL Server Management Studio,登陆数据库进行管理。如图1。

 

图1 登陆MS SQL server2008数据库

2.1登陆时的会遇到的问题

登录时我遇到了问题,如图2。

 

图2 登陆时遇到的问题

错误信息如下:

 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) (Microsoft SQL Server,错误: 53)

2.2 问题的解决方案

在我百度了一些解决方案以后,我了解到,服务器名称不能填写默认的:(local)。应该以这样的格式来填写:计算机名称\实例名称。以我个人为例,如图3。

 

图3 正确的登陆填写

既然能登陆到数据库,就说明我们的安装是没有问题的。下面我们进行一些关于PHP的设置。

3 为PHP准备适当的库文件

PHP5.3以后,其连接数据库的原生代码是由Microsoft团队来维护的。我们需要的库文件(在windows下是.dll文件)在PHP的源码包里是没有的,所以我们需要另行下载。

参照PHP官方文档是最好的选择。

http://php.net/manual/zh/book.sqlsrv.php

3.1 下载并安装Microsoft SQL Server 2012 Native Client

说句题外话,这一步是我在写博客时,阅读PHP manual中才得知的。怪不得我第一遍在操作时,碰到了php报错,中文大意就是“本机没有安装Microsoft SQL Server 2012 Native Client”。开来英文好,能阅读官方文档是王道啊!

下载Microsoft SQL Server 2012 Native Client的网址如下:

http://php.net/manual/zh/sqlsrv.requirements.php

3.2 下载适当的Microsoft SQL Server Driver for PHP

由官方文档我们可以得知,对应于PHP5.3.x的适用程序是SQLSRV 3.0。下载网址如下:

http://www.microsoft.com/en-us/download/details.aspx?id=20098

考拉新媒体导航
考拉新媒体导航

考拉新媒体导航——新媒体人的专属门户网站

下载

 

3.3 选择适当的库文件

根据官方文档,我们把3.2步骤中下载的程序??SQLSRV30.EXE??解压缩以后,会得到8个驱动文件(驱动文件以.dll为结尾)。如图4。

 

图4 SQLSRV30.EXE解压缩展开之后

 

根据官方文档,php5.3线程安全版本应选择 php_pdo_sqlsrv_53_ts.dll 和 php_sqlsrv_53_ts.dll两个文件,放置在php根目录下的ext文件夹下。例如,在我的机器中,路径是D:\lamp\php5\ext。

3.4 怎么样得知自己的php是否线程安全

在phpinfo中,我们查看这样的一条信息。如图5。

 

图5 phpinfo输出信息

 

“enable”表示该php是线程安全版本的反之就是非线程安全。

4. 配置php.ini文件

关于php.ini文件的配置,完全可以参照如下的网址。

http://msdn.microsoft.com/en-us/library/cc296203(v=sql.105).aspx

 

4.1 使php加载SQLSRV驱动

在php.ini的拓展模块加载区??文件中extension那块位置,填写如下配置,使php默认加载SQLSRV 驱动。

         extension=php_sqlsrv_53_ts.dll

4.2 使php加载PDO_SQLSRV驱动

在与4.1中同样的位置,填写如下配置。

         extension=php_pdo_sqlsrv_53_ts.dll

为了使php开启pdo驱动,我们还要开启pdo驱动。 

         extension=php_pdo.dll

4.3验证pdo_sqlsrv是否加载成功

在phpinfo中看到画黄线的单词,表示加载成功。如图6所示。

 

图6 phpinfo的输出

5. 在php运行时动态加载

我也是现在才知道,php还有这样的神奇功能,让我们暂时注释掉php配置文件里给你刚刚写好的配置,试一下动态加载的功能。

根据官方文档,dl()这个函数在php5.3被废除了。我因此无法进行测试。

但是微软官方的php代码如下:

 dl('php_pdo_sqlsrv_53_ts.dll');

6. 注意事项

在MS SQL server中,数据表能名称不能叫user,因为有个系统表的名称就是user!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

1

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

2

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

0

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

0

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

3

2026.01.29

clawdbot ai使用教程 保姆级clawdbot部署安装手册
clawdbot ai使用教程 保姆级clawdbot部署安装手册

Clawdbot是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

24

2026.01.29

clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址
clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址

clawdbot龙虾机器人官网入口:https://clawd.bot/,clawdbot ai是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

16

2026.01.29

Golang 网络安全与加密实战
Golang 网络安全与加密实战

本专题系统讲解 Golang 在网络安全与加密技术中的应用,包括对称加密与非对称加密(AES、RSA)、哈希与数字签名、JWT身份认证、SSL/TLS 安全通信、常见网络攻击防范(如SQL注入、XSS、CSRF)及其防护措施。通过实战案例,帮助学习者掌握 如何使用 Go 语言保障网络通信的安全性,保护用户数据与隐私。

8

2026.01.29

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

577

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号