在PHP中访问mssql有两个方式
1.安装相应的驱动,如sqlsrv
2.直接使用PHP自带的ODBC驱动(不需要安装)
 
本文直接使用自带的ODBC驱动
在使用前请确定PHP开启了php_pdo_odbc扩展
<?php
/*
* @Author: HUANGYUAN
* @Date: 2017-03-01 16:32:22
* @Last Modified by: huangyuan413026@163.com
* @Last Modified time: 2017-03-01 17:53:53
* @Description: 使用odbc连接到sqlserver,PHP必须开启php_pdo_odbc扩展
*/
namespace app\index\controller;
use PDO;//导入PDO
class login
{ public function index(){ //以下三个mssqldriver,使用任意一个都可以
$mssqldriver = '{SQL Server}'; $mssqldriver = '{SQL Server Native Client 11.0}'; $mssqldriver = '{ODBC Driver 11 for SQL Server}'; $hostname='123.123.123.123,1414'; $dbname='dbname'; $username='user'; $password='pwd'; //使用ODBC方式连接
$dbDB = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;Database=$dbname", $username, $password);
//没有安装sqlsrv驱动时无法使用,error:could not find driver
// $dbDB = new PDO("sqlsrv:Server=$hostname;Database=$dbname", $username, $password); $sql = "SELECT * FROM Users"; foreach ($dbDB->query($sql) as $row) {
var_dump($row);
}
exit;
}
}

  

 
//$dbDB = new PDO("sqlsrv:Server=$hostname;Database=$dbname", $username, $password); 的错误信息
原因:可能是没有安装驱动sqlsrv,DOWNLOAD Microsoft SQL Server Functions (PDO_SQLSRV)
 
使用Thinkphp5的DB来处理数据库
 
1.数据库配置 database.php
<?php

return [
// 数据库类型
'type' => 'Sqlsrv', //必须输入
// 用户名
'username' => 'username',
// 密码
'password' => 'pwd', // 连接dsn,驱动、服务器地址和端口、数据库名称
'dsn' => 'odbc:Driver={SQL Server};Server=123.123.123.123,1414;Database=dbname',
];

  

 
2.控制器文件
 
<?php
/*
* @Author:HUANGYUAN
* @Date: 2017-03-01 16:32:22
* @Last Modified by: huangyuan413026@163.com
* @Last Modified time: 2017-03-02 10:19:19
* @Description: 使用odbc连接到sqlserver,PHP必须开启php_pdo_odbc扩展
*/
namespace app\index\controller;
use think\Db; //必须先导入db类,否则不能使用
class login
{
public function index(){
$user = Db::table('Users')->where('userid',1)->select();
print_r($user);
}
}

  

2017-06-27 UPDATE

 
在PHP中默认中已经配置了pdo的mysql、sqlite、sqlsrv等数据库驱动的,一般情况下我们可以直接使用即可
所以推荐使用PDO方式而不是ODBC(ODBC需要单独安装驱动)
$dbDB = new PDO("sqlsrv:Server=$hostname;Database=$dbname", $username, $password);

参考:

Thinkphp5 使用odbc连接到sqlserver的更多相关文章

  1. Oracle中使用透明网关链接到Sqlserver[Z]

    Oracle中使用透明网关链接到Sqlserver 在最近项目中需要从Oracle中访问SQL Server数据库, 自然想到了透明网关. 因为Oracle数据库是Linux上的, 而Linux上的O ...

  2. Oracle中使用透明网关链接到Sqlserver(转)

    测试环境介绍 1.ORACLEServer   Database version:10.2.0 IP:192.168.1.5 ORACLE_HOME:D:\oracle\product\10.2.0\ ...

  3. ODBC数据管理器 SqlServer实时数据同步到MySql

    ---安装安装mysqlconnector http://www.mysql.com/products/connector/ /* 配置mysqlconnector ODBC数据管理器->系统D ...

  4. ODBC连接到400

    1.首先iSeries Client安装的时候要勾选ODBC , 这样才能找到Driver 2.某个Application是32位上,要用32位路径下的ODBC Administration打开,添加 ...

  5. VS2013无法连接到SqlServer的问题解决

    在本机安装Vs2013后,安装Sqlserver2012数据库,在VS开发时,数据库一直查询不到 点击刷新后,看不见本机Sql服务器 最初检查防火墙设置,发现添加sqlservr.exe依然不起作用 ...

  6. delphi odbc远程连接sqlserver

    ip设置格式xx.xx.xx.xx,port ip和端口号之间是逗号

  7. 利用ODBC从SQLServer向Oracle中导数据

    1.首先要在Oracle数据库中建对应的表,Oracle数据库中的字段类型和Sql Server 有所不同,Oracle中常用的有varchar2.integer.nchar.date,Sql Ser ...

  8. 【转】怎样查出SQLServer的性能瓶颈

    怎样查出SQLServer的性能瓶颈 --王成辉翻译整理,转贴请注明出自微软BI开拓者[url]www.windbi.com[/url]--原帖地址 如果你曾经做了很长时间的DBA,那么你会了解到SQ ...

  9. Sql-Server应用程序的高级注入

    本文作者:Chris Anley 翻译: luoluo [luoluonet@hotmail.com] [目 录] [概要] [介绍] [通过错误信息获取信息] [更深入的访问] [xp_cmdshe ...

随机推荐

  1. 自己封装jquery的一些方法 链式调用模式

    function getIndex(ele){ var parent=ele.parentNode; var brothers=parent.children; for(var i=0,len=bro ...

  2. 国外IOS UI指南

    国外IOS UI指南 众所周知,IOS的界面设计,越来越流行,可以说都形成了一个标准,搜集了一些资料,供自己以后学习使用! iOS Human Interface Guidelines (中文翻译) ...

  3. C#网络编程技术FastSocket实战项目演练

    一.FastSocket课程介绍 .NET框架虽然微软提供了socket通信的类库,但是还有很多事情要自己处理,比如TCP协议需要处理分包.组包.粘包.维护连接列表等,UDP协议需要处理丢包.乱序,而 ...

  4. mysql slave 主从 指定表 通配符

    slave配置 slave端有可能,只复制部分表,有一些表不需要备份配置如下: 有一些表你可能做水平或则垂直的处理.如果表的前几位一样,就可以用通配符%匹配 replicate-wild-ignore ...

  5. C#复制数组的两种方式,以及效率比较

    如何高效地进行数组复制? 如果把一个变量值复制给另外一个数组变量,那么2个变量指向托管堆上同一个引用. 如果想在托管堆上创建另外的一份数组实例,通常使用Array.Copy方法. class Prog ...

  6. iOS objc_msgSend 报错解决方案

    错误代码: objc_msgSend(self.beginRefreshingTaget, self.beginRefreshingAction, self); Too many arguments ...

  7. C#编程(七十四)----------释放非托管资源

    释放非托管资源 在介绍释放非托管资源的时候,我觉得有必要先来认识一下啥叫非托管资源,既然有非托管资源,肯定有托管资源. 托管资源指的是.net可以自棕进行回收的资源,主要是指托管堆上分配的内存资源.托 ...

  8. c++中 extern

    用例子给你示范 // 1.cpp int x = 10; // 2.cpp 注意没有包含1.cpp #include <iostream> using namespace std; ext ...

  9. [开源]Google code Android开源项目(一)

    [Android分享] [开源]Google code Android开源项目(一) [复制链接]     449122717 2 主题 2 好友 816 积分 No.4 中级开发者 升级  19.3 ...

  10. 如何在 Xcode 中修改应用的名字

    找到 TARGETS 中的 Build Setting ,下拉找到 Packaging ,修改 Product Name 即可.