thinkphp5访问sql2000数据库
大家都知道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>';
}
}
thinkphp5访问sql2000数据库的更多相关文章
- sql2000数据库置疑造成的原因以及如何解决置疑
造成数据库置疑一般有以下几点: 1)电脑非法关机或者意外停电: 2)磁盘有坏道或者损坏: 3)数据库感染病毒,日志文件损坏: 4)非正常情况下移动数据库文件 5)系统,硬盘,经常强制性关机(如断电)类 ...
- Qt5 开发 iOS 应用之访问 SQLite 数据库
开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 iPhone 6S+iOS 10.1.1 源代码: 我在 Qt 程序里指定了数据库的名称来创建数据库,在 Win10.An ...
- java文件来演示如何访问MySQL数据库
java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE ...
- 如何配置网络使得宿主机能够访问VM数据库?
https://www.zhihu.com/question/23955166 背景:公司内外网区分,不能同时上,局域网内得手动切换两个网络,分别访问外网或者内网,ip是动态获取的.现在本机上装有vm ...
- .net(C#)访问Oracle数据库的几种免安装组件的对比
Oracle 数据存取组件(ODAC) 库为Borland Delphi,C++ Builder 以及 Kylix提供了一些非可视化的组件.它们用来存取Oracle关系数据库系统.与BDE类似, OD ...
- PHP访问MySql数据库介绍
在网站后台,经常要与数据库打交道.本文介绍如何使用XAMPP来管理MySql数据库及如何用PHP来访问MySql数据库. 一.使用XAMPP来管理MySql数据库 首先使用XAMPP打开MySql的管 ...
- VS2010添加类失败问题,弹出错误框,提示 CodeModel操作失败,无法访问标记数据库
我在使用VS2010添加类的时候,会弹出一个错误框,提示 CodeModel操作失败,可以无法访问标记数据库 英文版是 CodeModel operation failed,Possibly cann ...
- C#访问postgresql数据库
最近开始做C#的DotNet的工作,因为对PostgreSQL数据库比较有兴趣,所以自己研究了一下如何访问PostgreSQL的 数据库的问题. 1.为了访问PostgreSQL数据库,需要从pgfo ...
- C/C++访问PostgreSQL数据库
编号:1011时间:2016年5月17日09:46:01功能:Windows环境下C/C++访问PostgreSQL数据库https://segmentfault.com/a/119000000062 ...
随机推荐
- css中attribute selector及pseudo class
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference#Selectors 在css3规范中,定义了以下几种类型的selector: Ba ...
- 立即终止Sleep的线程
在实际工作中,我们需要每隔几分钟从API取数. while(isRunning) { work(); Thread.Sleep(5*60*1000); } 如果设置isRunning=false,也需 ...
- M-PalindromeP-DP
Palindrome Partitioning 动态规划+深度优先搜索 https://leetcode.com/discuss/23480/c-solution-with-dp-and-dfs-12 ...
- QT的编译原理
https://www.cnblogs.com/findumars/p/4948896.html
- PTA练习题之7-2 求交错序列前N项和(15 分)
本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和. 输入格式: 输入在一行中给出一个正整数N. 输出格式: 在一行中输出部分和的值,结果保留三位小数. ...
- GitHub & Git 基础 (YouTube中文翻译版)
GitHub & Git 基础系列视频 播放列表 由于视频资源在YouTube上,可能需要FQ:https://code.google.com/p/chromeplus/ 视频包括以下内容 1 ...
- postgresql+postgis+pgrouting实现最短路径查询(2)---openlayers+geoserver实现最短路径
自己的最短路径实现基本上是按照参考博文的1.2和3进行的,实现的时候也是问题不断,只能是一个一个解决. 问题1:自己发布的geoserver服务无法和OSM底图叠加到一起. 解决:参考博文2提到发布服 ...
- hdu-2886 Special Prime---数论推导
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2866 题目大意: 问你1到L中有多少个素数满足n^3 + p*n^2 = m^3(其中n,m为大于1 ...
- 自动下单tomcat版本问题
\xalan\xalan,jar找不到是因为spring boot 中使用的是tomcat8.5,从platform依赖进来的运行时环境是tomcat8,导致覆盖原来的依赖,在platform中移除S ...
- cannot be resolved解决方法
引言: eclipse新导入的项目经常可以看到“XX cannot be resolved to a type”的报错信息.本文将做以简单总结. 正文: (1)jdk不匹配(或不存在) 项目指定的jd ...