以前php连接sqlserver是要保证ThinkPHP\Lib\Driver\Db文件夹里面有DbMsql.class.php 配置文件'DB_TYPE'=>'mssql' 这方面我没有研究过。
本文主要说php5.x版本的,大家都知道微软提供的自己的驱动,mssql也叫sqlsrv了。下面开始:
一、要下载thinkphp的Dbsqlsrv.class.php文件放到ThinkPHP\Lib\Driver\Db文件夹,下载地址:https://code.google.com/p/thinkphp/source/browse/trunk/Extend/Driver/Db/DbSqlsrv.class.php?r=3081,新建Dbsqlsrv.class.php文件复制代码粘贴即可。
二、配置实例:
'DB_sqlsrv' => array(
'db_type' => 'sqlsrv',
'db_user' => 'sa',
'db_pwd' => 'mima',
'db_host' => 'host地址',
'db_port' => '端口', //sqlserver默认1433
'db_name' => '数据库名',
),三、action调用实例<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
public function index(){
$Dao = M('table',null,"DB_SQLSRV"); //如果表没有后缀用null而不能用'';
$count = $Dao->count();// 计算总数
import("ORG.Util.Page"); // 导入分页类
$p = new Page($count, 10); // 实例化分页类
$p->setConfig('prev','上一页');
$p->setConfig('next','下一页');
$p->setConfig('first','首页');
$p->setConfig('last','尾页');
$p->setConfig('theme',"共 %totalPage% 页,共%totalRow%%header%, %first% %upPage% %linkPage% %downPage% %end%");
$page = $p->show(); // 分页显示输出
$list = $Dao->table('table1 a,s_table2 b')->field('a.*,b.*')->where("b.id = a.id and a.datime between '2014-01-01' and '2015-01-01'")->limit($p->firstRow.','.$p->listRows)->order('a.dRehear')->select();
//注意:sqlserver数据库查询结果可能存在时间的数据是一个数组,那么双表关联查询就会查不出来,所以最好field('a.*,b.*') 里面只写上你需要查询的数据即可而不要用*查询表内所有数据,至于时间是一个数组 该怎么解决期待其他高手回复
// 赋值赋值
$this->assign('page', $page);
$this->assign('list', $list);
$this->display();
}
} 最佳答案