thinkphp6 sqlserver 数据库遇到的问题及解决

2020-08-13  本文已影响0人  一号读者

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

      根据你的php版本选择对应的安装包。由于我的PHP版本是7.3.2,所以我下载的是 

SQLSRV56.EXE, 运行后选择解压目录为 phpstudy_pro /php/ext/ 

打开php.ini  添加sqlser扩展

添加两个

(2)重启启动apache或者IIS

(3)这时候你在phpinfo()中的PDO配置中会看见已经存在sqlsrv了。

(4)下载安装一个Microsoft® ODBC Driver 11 for SQL Server    注意:win10 一般会自带这个。

https://www.microsoft.com/download/details.aspx?id=36434

二、配置你的database.php文件

三、 测试连接

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 文件如图:

     修改数据库配置:

上一篇下一篇

猜你喜欢

热点阅读