PHP支持SQL server环境配置:
php5.6的如果想连接Sql Server 2008数据库,需要手动配置扩展和安装一个驱动。
下载SQL Server Driver for PHP的扩展包,64位系统的官方不支持,找到一个非官方的:
http://pan.baidu.com/s/1o7FVblw
解压复制里面dll文件到php的ext文件夹里面
打开php.ini文件添加下面两个扩展:
extension=php_pdo_sqlsrv_56_ts.dll
extension=php_sqlsrv_56_ts.dll
保存php.ini后重启Apache。
在Apache安装目录下的htdoc文件夹下新建index.php文件
index.php文件代码如下
testphpinfo();
?>
打开浏览器访问Apache服务器,下的index.php
如我的访问:http://localhost:81/index.php
出现如下信息:
如上,若在Registered PHP Streams项中找到sqlsrv说明你配置成功了。
Tp5 database.php配置文件配置:
在tp5的文件中找到database.php 配置如下:
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st
// +----------------------------------------------------------------------
return [
// 数据库类型
'type' => 'Sqlsrv',
// 服务器地址
'hostname' => 'DESKTOP-DKAKLO9',
// 数据库名
'database' => 'test',
// 用户名
'username' => 'sa',
// 密码
'password' => 'secret',
// 端口:一般SQL server的默认安装端口都是1433
'hostport' => '1433',
// 连接dsn
'dsn' => '',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => '',
// 数据库调试模式
'debug' => true,
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'deploy' => 0,
// 数据库读写是否分离 主从式有效
'rw_separate' => false,
// 读写分离后 主服务器数量
'master_num' => 1,
// 指定从服务器序号
'slave_no' => '',
// 是否严格检查字段是否存在
'fields_strict' => true,
// 数据集返回类型
'resultset_type' => 'array',
// 自动写入时间戳字段
'auto_timestamp' => false,
// 时间字段取出后的默认时间格式
'datetime_format' => 'Y-m-d H:i:s',
// 是否需要进行SQL性能分析
'sql_explain' => false,
];
这些连接属性可以在Microsoft SQL Server Management Stodio中登陆后找到,如下:
测试:
当如上的配置都OK后,接下来开始测试了:
在tp5中建立test.php,测试代码如下:
/**
* Created by PhpStorm.
* User: xuesongzeng
* Date: 2017/10/15
* Time: 16:13
*/
namespace app\admin\controller;
use think\Controller;
use think\Db;
class Test extends Controller
{
public function abc(){
Db::query('insert Into [taotao].[dbo].[user] (id,name)VALUES (1,"第一行");');
Db::query('insert Into [taotao].[dbo].[user] (id,name)VALUES (2,"第二行");');
$User = Db::query('select * from [dbo].[user]');
dump($User);
}
}
浏览器访问结果如下:
数据库结果如下:
成功!!!!
当然有的会遇到如:[Microsoft][SQL Server Native Client 11.0]TCP 提供程序: 由于目标计算机积极拒。。。的问题:
打开如下软件:开启sql服务
在网络配置下->启用TCP/Ip