🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
![](https://img.kancloud.cn/64/e1/64e1cc0bfc2fa2a0d68fe486102065c4_247x406.jpg)![](https://img.kancloud.cn/1d/1f/1d1fcc717c04253d9271ce62b6739f60_422x400.webp) # thinkphp6 sqlserver 数据库遇到的问题及解决方案 thinkphp 连接sqlserver 需要进行环境配置,相对mysql 复杂,我本地的环境是使用现在总结如下:thinkphp6+ sqlserver2008  环境使用phpstudy\_pro 搭建。搭建步骤如下: **简单的步骤:TP连SQLSRV的方式:** 1.安装php\_sqlsrv扩展SQL Server Driver for PHP。具体根据你使用的php版本在微软网站下载。 2.安装MSODBCSQL 3.安装完1、2步后写一个phpinfo()看看是否生效。 4.tp配置文件数据库类型改为sqlsrv对应端口用户名密码等 **详细步骤:** 1、**下载一个SQL Server Driver for PHP** \*\*      这是一个扩展包,我是在这里下载的 \*\*[https://download.microsoft.com/download/F/1/B/F1B49733-E519-419B-A192-10DCE6E3C35B/SQLSRV56.EXE](https://links.jianshu.com/go?to=https%3A%2F%2Fsqlserver%2520driver%2520for%2520php%2F) 根据你的php版本选择对应的安装包。由于我的PHP版本是7.3.2,所以我下载的是 SQLSRV56.EXE, 运行后选择解压目录为 phpstudy\_pro /php/ext/ ![](//upload-images.jianshu.io/upload_images/7872037-58b594ffd1a14adf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/618/format/webp) 打开php.ini  添加sqlser扩展 添加两个 ![](//upload-images.jianshu.io/upload_images/7872037-87c405ea73cb5de9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/590/format/webp) (2)重启启动apache或者IIS (3)这时候你在phpinfo()中的PDO配置中会看见已经存在sqlsrv了。 ![](//upload-images.jianshu.io/upload_images/7872037-786e19b4170ca94e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1002/format/webp) (4)下载安装一个Microsoft® ODBC Driver 11 for SQL Server    注意:win10 一般会自带这个。 [https://www.microsoft.com/download/details.aspx?id=36434](https://links.jianshu.com/go?to=https%3A%2F%2Fodbc%2F) 二、配置你的database.php文件 ![](//upload-images.jianshu.io/upload_images/7872037-cc153b65f737419e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/752/format/webp) **三、 测试连接** 1、使用模板测试 引用中使用: use think\\Facade\\Db; 编写代码: ``` $user = Db::table('user')->where('id', 0)->select(); dump($user); ``` 2、使用 直连方式 ``` *$serverName = "192.168.42.180"; //数据库服务器地址* *$uid = "sa";    //数据库用户名* *$pwd = "Bs@54321"; //数据库密码* *$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"test");* *$conn = sqlsrv\_connect($serverName, $connectionInfo);* *if( $conn == false)* *{* *  echo "failed";* *  var\_dump(sqlsrv\_errors());* *  exit;* *}else{* *  echo "ok";* *}* *```* ***四、中间遇到的问题总结*** 1、无法调试程序、显示不出问题及代码所在位置。   处理 :将默认在项目目录文件生成的环境变量示例文件.example.env  重命名为 .env文件  即可解决 2、 运行是这个错误TP6 SQLSTATE\[HY000\] \[1045\] Access denied for user 'username'@'localhost' (using password: YES)   处理: 打开项目目录,点开.env 文件如图: ![](https://img.kancloud.cn/64/e1/64e1cc0bfc2fa2a0d68fe486102065c4_247x406.jpg)      修改数据库配置: ![](https://img.kancloud.cn/1d/1f/1d1fcc717c04253d9271ce62b6739f60_422x400.webp) ```