windows下通过sqlsrv连接sql server,
linux下通过dblib也能连接sql server,不一定要部署在windows操作系统下。
1、安装freetdswget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
tar -zxvf freetds-patched.tar.gz
#进入freetds目录
./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --enable-msdblib
make && make install
2、安装pdo_dblib
下载php源码,进入ext/pdo_dblib目录,安装PHP拓展三部曲/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds/
make && make install
3、重启web服务器,使php拓展生效
下面以thinkphp5为示例,连接sql server 2008,database.php// 数据库类型
'type' => 'sqlsrv',
// 配置dsn
'dsn' => 'dblib:version=7.3;charset=UTF-8;host=服务器IP地址:服务器端口;dbname=数据库名称;',
// 用户名
'username' => '数据库用户名',
// 密码
'password' => '数据库密码',
测试数据库表结构CREATE TABLE "tb_test" (
"fid" INT NOT NULL,
"fname" VARCHAR(50) NULL DEFAULT NULL,
PRIMARY KEY ("fid")
);
控制器namespace app\index\controller;
use think\Db;
class TestController{
//分页查询
function all() {
$ret = Db::name('test')->page(0, 5)->select();
print_r($ret);
}
//insert增加
function add() {
$ret = Db::name('test')->insert([
'fname' => '远思软件'.rand(100,999)
]);
print_r($ret);
}
//编辑
function edit() {
$ret = Db::name('test')->where([
'fid' => ['>',1]
])->update([
'fname' => 'www.yssoft.cn'
]);
print_r($ret);
}
}