美文网首页
thinkphp6 sqlserver 数据库遇到的问题及解决

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

作者: 一号读者 | 来源:发表于2020-08-13 17:15 被阅读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 文件如图:

         修改数据库配置:

    相关文章

      网友评论

          本文标题:thinkphp6 sqlserver 数据库遇到的问题及解决

          本文链接:https://www.haomeiwen.com/subject/nllidktx.html