![](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)
```