Alex的博客

本博客的文章均为原创,是本人从事行业多年来所遇见一些小问题的解决心得,希望可以帮助到大家!



ci3.0 php5.6x64 链接mssql2008

1. 为php添加 sqlsrv 扩展

去微软官网 https://www.microsoft.com/en-us/download/ 搜索php ,

点击 Microsoft Drivers for PHP for SQL Server 

下载最新版的 sqlsrvXX.exe( 我下载的是SQLSRV32.EXE )

运行解压, 得到一堆DLL, 选取适合自己php版本的dll, 放到php\ext\目录下; (我的php版本为5.6.3, 选取的是php_sqlsrv_56_ts.dll, 56就是5.6.x的php版本)

在php.ini 增加一行 extension=php_sqlsrv_56_nts.dll

重启服务, 查看phpinfo(), 如果有sqlsrv项, 证明扩展以安装成功.

又因为 SQLSRV3.X.EXE 需要额外的驱动 Microsoft ODBC Driver 11 (或更高版本), 所以需要安装 Microsoft ODBC Driver 11

访问 https://msdn.microsoft.com/en-us/library/cc296170%28v=sql.105%29.aspx

找到这段话

Versions 3.2 and 3.1 require Microsoft ODBC Driver 11 (or higher) for SQL Server. To download the Microsoft ODBC Driver 11 for PHP for SQL Server, see Microsoft ODBC Driver 11 for SQL Server.

点击 Microsoft ODBC Driver 11 for SQL Server.

下载安装.

全部完成!!!!!

写个测试脚本


[php] 
$serverName = "xxxxxx"//serverName\instanceName  
$connectionInfo = array"Database"=>"""UID"=>"xxx""PWD"=>"xxx");  
$conn = sqlsrv_connect( $serverName$connectionInfo);  
  
if$conn ) {  
     echo "Connection established.<br />";  
}else{  
     echo "Connection could not be established.<br />";  
     die( print_r( sqlsrv_errors(), true));  
}  



2. 在CI配置sqlsrv数据库配置 (CI 3.0.0为例)

//静态配置

打开config\database.php 修改, 注意 dbdriver这个项填上 sqlsrv  ;

//动态配置 或 多数据库

在model 文件中, 在构造函数里面 (记得写parent::__contruct() 来继承父类的构造函数) 加入

$this->another_db = $this->load->database( $config, true ); //$config可以直接从database.php复制, true为有返回值.

然后就可以飞了.

$this->another_db->get();

$this->another_db->get_where();

.....



如果你用的php版本是64位版本好像在官方下载的是不能用的直接下载下面的附件解压找出自己php对应版本的dll文件放到对应的位置就好

sqlsrv.tar.gz

浏览758  评论0  Alex于 2016-7-4 14:33
发言