thinkphp连接微软的sqlserver数据库,默认应该是支持2012,2008,2005等大众版本的,记得这个连接还是需要你配置环境的,使用sqlsrv扩展组件,之前记录了tp3的,这次更新tp5的配置上来
ThinkPHP3 的配置
<?php return array( 'DB_TYPE' => 'sqlsrv', // 若填写 '127.0.0.1' 报 '命名管道提供程序: 无法打开与 SQL Server 的连接' 错误 'DB_HOST' => 'localhost', 'DB_NAME' => 'WaringPulish', 'DB_USER' => 'root', 'DB_PWD' => 'root', 'DB_CHARSET' => 'utf8', // 若填写 '1433' 报 'TCP 提供程序: 由于目标计算机积极拒绝,无法连接' 错误 'DB_PORT' => '', // 端口 'DB_PREFIX' => '', );
ThinkPHP5 的配置
<?php return [ // 数据库类型 'type' => 'sqlsrv', // 服务器地址 若填写 '127.0.0.1' 报 '提供程序: 由于目标计算机积极拒绝,无法连接' 错误 'hostname' => 'localhost', // 数据库名 'database' => 'WaringPulish', // 用户名 'username' => 'root', // 密码 'password' => 'root', // 端口 若填写 '1433' 报 '提供程序: 由于目标计算机积极拒绝,无法连接' 错误 'hostport' => '', // 连接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, ];
原生 pdo sqlsrv 连接
<?php header("content-type:text/html;charset=utf-8"); try { // 服务器地址 若填写 '127.0.0.1' 报 '命名管道提供程序: 无法打开与 SQL Server 的连接' 错误 $conn = new PDO( "sqlsrv:server=localhost;Database = WaringPulish", 'root', 'root'); $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); echo "连接成功"; } catch( PDOException $e ) { die("连接失败:".$e->getMessage()); }
原生 sqlsrv 连接
header("content-type:text/html;charset=gbk"); // 若填写 '127.0.0.1' 或 'localhost' 报 '命名管道提供程序: 无法打开与 SQL Server 的连接' 错误 $conn = sqlsrv_connect( "(local)", array("UID"=>"root","PWD"=>"root","Database"=>"cwrpms")); if( $conn ){ echo "连接成功"; }else{ echo "连接失败:<pre>"; print_r(sqlsrv_errors()); }