大家都知道php跟mysql是绝配,但是因为有时候工作需要,要求php访问操作sql2000,怎么办呢?

一般来说有两种方式:

1. sqlsrv驱动方式

2. odbc方式

sqlsrv驱动方式,因为微软公司原因,不提供sql2000的访问驱动,只提供了sql2005以上的驱动,所以如果你的数据库是2005以上版本,特别是sql2008r2,到微软官方可以下载到sql2008 for php的驱动,网上有很多文章介绍,我的博客里有篇文章 http://www.cnblogs.com/skysowe/p/5749022.html 专门讨论这个情况;

我工作环境是:php 5.5n(phpstudy) + nginx  + tp5.10 + sql2000 + win7(64位)系统

网上搜到了这篇文章http://www.cnblogs.com/huangtailang/p/6485528.html,测试了一下,文章里的方法是可用的:

(一)使用odbc方式在控制器里工作:

<?php
namespace app\index\controller; use PDO; //for pdo odbc sql2000 or sql2008r2 class Index
{
public function index()
{
header('Content-type:text/html; charset=utf-8'); //////////////////////////////////////////////////////
//test sql2000&sql2008r2 pdo
////////////////////////////////////////////////////// $dbname='master';
$username='sa';
$password='yoooko'; //--------------------------------------------------------------ok
//sql2000
$mssqldriver = '{SQL Server}';
$hostname='127.0.0.1\sql2000,1434';
//使用ODBC方式连接
$dbDB = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;Database=$dbname", $username, $password); //-------------------------------------------------------------- //--------------------------------------------------------------ok
//sql2008r2
//$mssqldriver = '{SQ Server Native Client 11.0}';
//$mssqldriver = '{ODBC Driver 11 for SQL Server}';
//$hostname='127.0.0.1\sql2008r2,14333';
//没有安装sqlsrv驱动时无法使用,error:could not find driver
//$dbDB = new PDO("sqlsrv:Server=$hostname;Database=$dbname", $username, $password);
//-------------------------------------------------------------- $sql = "SELECT * FROM cs";
foreach ($dbDB->query($sql) as $row) {
var_dump($row);
} } }

(二)使用database.php + 控制器的方式工作

在database.php里配置:

return [

    // 数据库类型
'type' => 'Sqlsrv', //必须输入<br> // 用户名
'username' => 'sa', // 密码
'password' => 'yoooko', // 连接dsn,驱动、服务器地址和端口、数据库名称
'dsn' => 'odbc:Driver={SQL Server};Server=127.0.0.1\sql2000,1434;Database=master', ];

在Index.php控制器里:

<?php
namespace app\index\controller; use think\Db; class Index
{
public function index()
{
header('Content-type:text/html; charset=utf-8'); //$user = Db::table('cs')->select(); //不行,有row_number()错误
$user = Db::query("select * from cs"); //必须使用原生sql方式,正确 echo '<pre>';
print_r($user);
echo '</pre>';
}
}

最新文章

  1. SharePoint 部署时报错: 未能提取此解决方案中的cab文件
  2. JSP之WEB服务器:Apache与Tomcat的区别 ,几种常见的web/应用服务器
  3. opencv常见代码
  4. css中伪元素before或after中content的特殊用法attr
  5. jQuery原型方法first,last,eq,slice源码分析
  6. ubuntu下lamp配置
  7. Android String操作
  8. vmware 无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件
  9. poj 1087 最大流
  10. Android异步下载图片并且缓存图片到本地
  11. Rust 中的继承与代码复用
  12. progressbar使用方法:进度画面大小,进度画面背景,进度百分比
  13. Java进程通信之映像文件共享内存
  14. Mac对gdb签名
  15. Linux中一个快速查找文件和目录的命令
  16. 八大排序算法——希尔(shell)排序(动图演示 思路分析 实例代码java 复杂度分析)
  17. CSS 图像左右对齐
  18. Nginx系列3:用Nginx搭建一个具备缓存功能的反向代理服务
  19. AES算法在Python中的使用
  20. 使用json-org包实现POJO和json的转换

热门文章

  1. yii2.0 Activeform表单部分组件使用方法 [ 2.0 版本 ]
  2. June 28th 2017 Week 26th Wednesday
  3. 如何理解 Learning to rank
  4. ADB命令详解及大全( 声明:此文是参考大佬博客所做的笔记!)
  5. Disruptor
  6. Vue点击切换class
  7. 解决mac 下mysql安装后root用户登录密码错误问题
  8. MFC自定义消息的实现方法
  9. WIN10下的Docker安装
  10. 学生会管理系统(SSM)vue+ssm+shiro