啊哈哈哈 又见面了 今天无聊来给一些刚使用PHP的初学者们解决一下如何链接PHP和MSSQL。
众所周知PHP和MYSQL是一对不离不弃的好朋友但是有时候项目迫不得已要使用SQL SERVER数据库
链接便是其中一个比较烦人却又不是很有技术含量的一个活。作者在这里就用Laravel框架举例说明一下链接
作者的环境是:
Windows 7 64位系统
SQL SERVER 2008 R2
PHP 5.6
XAMPP
首先呢 我们先设置好链接数据库的基本参数,在laravel框架下只需要将env文件中的设置如下所示改好
DB_HOST=localhost
DB_DATABASE=DBNAME
DB_USERNAME=USERNAME
DB_PASSWORD=PASSWORD
再将config目录下的database.php参数改好就可以了
'default' => 'sqlsrv',//默认数据源为SQL SERVER
数据库
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', '表名称'),
'username' => env('DB_USERNAME', '用户名),
'password' => env('DB_PASSWORD', '链接秘密'),
'prefix' => '',
现在对于PHP的操作已经完成了。
现在开始试验一下能不能链接呢。结果呢不言而喻吧看图便知
呵呵 特么没有DRIVER 那老子去给你下一个好了、
其实MICROSOFT在这方面还是提供了教程的 不过作者找到的是英文的对于喜欢看文档的选手我附上链接
https://msdn.microsoft.com/en-us/library/cc296170.aspx
如果不想看的、请继续跟随我的步伐哈哈哈哈
正如上图所示 PDO缺少相应的驱动 这样我们就去找驱动好了啦
1.Microsoft Drivers for PHP for SQL Server Version
https://msdn.microsoft.com/zh-cn/sqlserver/ff657782.aspx
这是所需要的第一份东西、网址我附上如果失效了 朋友们自行baidu一下你就知道或者google一下咯、
作者这里的PHP是5.6版本的 所以下载3.2版本。 各个版本的驱动不同这点要注意哈
至于不知道哪个版本对应哪个的朋友们你们可以看看官网如下表格所示
Microsoft Drivers for PHP for SQL Server Version | Supported PHP Versions |
|---|---|
3.2 | PHP 5.6.4+ or PHP 5.5.16+ or PHP 5.4.32 |
3.1 | PHP 5.5.16+ or PHP 5.4.32 |
3.0 | PHP 5.4.32 or PHP 5.3.0 |
2.0 | PHP 5.3.0 or PHP 5.2.4 or PHP 5.2.13 |
php_sqlsrv_56_ts.dll
php_pdo_sqlsrv_56_ts.dll这里的TS是指线程安全还是非线程安全 这里的知识已经超越笔者的理解能力了 概不讨论。
PS如果你不知道你的PHP版本和TSorNTS请自行去php info() 里面看 如果你说你不知道什么是PHPINFO的话呢
作者就劝你给作者打个电话吧。
言归正传下载这些之后将这些DLL文件放到PHP安装位置的EXT文件夹后找到PHP.ini文件 加入下列语句
extension=php_pdo.dll/如果没有去百度下一个放到ext文件夹下面
extension=php_sqlsrv_56_ts.dll
extension=php_pdo_sqlsrv_56_ts.dll重启apache 再次尝试使用数据库, 大家可能会发现还需要一个Microsoft ODBC Driver11 for SQL Server
这样好的 我们再去下一个好了同理 我附上链接
https://www.microsoft.com/en-us/download/details.aspx?id=36434
这里我提醒一下大家 只有3.2 3.1 版本的驱动才需要这个odbc driver另外下载时请分清楚自己操作系统是64还是32位的
如果为32 下载x86如果是64 x64就好。
如果失效了大家就搜Microsoft ODBC Driver11 for SQL Server就可以了
好的如果以上这些你都正确配置了 理论上你就可以用PHP去操作 MSSQL数据了
当然
如果还不可以
笔者还总结了一些我没有遇到的原因
1、查看SQL SERVER Configuration Manager 配置管理器 下面你的SQL SERVER 服务是否开启
如果开启,那么就可以排除这种错误
如果没有并出现了下图的错误
那么恭喜你啦 很多人碰见了同样的错误 具体解决方法附上链接
http://jingyan.baidu.com/album/9f63fb91d436b4c8410f0e5c.html?picindex=1
原因就是你装了一个叫SQLSERVER2012 EXPRESS DB的东西
导致他与SQLSERVER2008冲突了 远程过程调用失败。只需要卸载掉那个玩意就好了~
2.缺少某DLL文件 例如 Microsoft VC 编译环境 这个要看具体缺少哪个DLL文件
百度一下知道答案 但是我相信学习过微软一套的同学们应该不会遇到这种问题
3.未知因素
如果碰见这种的情况我觉得就没什么救了 哈哈哈开玩笑了 欢迎给博主留言 给他人提供更多的关于链接的信息,
最后谢谢大家了, 希望这篇文章可以让你顺利的连接上MSSQL数据库最后总结一下哈
1.下载Microsoft Drivers for PHP for SQL Server Version DLL文件,放入php ext目录及system32
2.修改php.ini
3.下载Microsoft ODBC Driver11 for SQL Server 文件安装
4.重启apache
下次见咯