PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】

这篇文章主要介绍了PHP利用pdo_odbc实现连接数据库,结合实例形式分析了基于ThinkPHP5.1框架使用pdo_odbc连接数据库相关操作步骤与实现技巧,需要的朋友可以参考下。

本文实例讲述了PHP利用pdo_odbc实现连接数据库,分享给大家供大家参考,具体如下:

目的:从sql server数据库里面把某个视图文件调用出来,以键值对的方式显示在页面上。

利用pdo odbc来实现PHP连接数据库:

在PHP配置文件里面开启pdo_odbc.dll服务。重启Apache服务器。

在ThinkPHP5.1的项目中在模块里添加config添加规定好的样式数据库:

代码如下:

  1. <?php
  2. return [
  3. // 数据库类型
  4. 'type' => 'sqlsrv',
  5. // 服务器地址
  6. 'hostname' => 'localhost',
  7. // 数据库名
  8. 'database' => 'mysql',
  9. // 用户名
  10. 'username' => 'sa',
  11. // 密码
  12. 'password' => '123456',
  13. // 端口
  14. 'hostport' => '',
  15. // 连接dsn
  16. 'dsn' => 'odbc:Driver={SQL Server};Server=localhost;Database=mysql',
  17. // 数据库连接参数
  18. 'params' => [],
  19. // 数据库编码默认采用utf8
  20. 'charset' => 'utf8',
  21. // 数据库表前缀
  22. 'prefix' => '',
  23. // 数据库调试模式
  24. 'debug' => true,
  25. // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
  26. 'deploy' => 0,
  27. // 数据库读写是否分离 主从式有效
  28. 'rw_separate' => false,
  29. // 读写分离后 主服务器数量
  30. 'master_num' => 1,
  31. // 指定从服务器序号
  32. 'slave_no' => '',
  33. // 是否严格检查字段是否存在
  34. 'fields_strict' => true,
  35. // 数据集返回类型
  36. 'resultset_type' => 'array',
  37. // 自动写入时间戳字段
  38. 'auto_timestamp' => false,
  39. // 时间字段取出后的默认时间格式
  40. 'datetime_format' => 'Y-m-d H:i:s',
  41. // 是否需要进行SQL性能分析
  42. 'sql_explain' => false,
  43. // Builder类
  44. 'builder' => '',
  45. // Query类
  46. 'query' => '\\think\\db\\Query',
  47. // 是否需要断线重连
  48. 'break_reconnect' => false,
  49. // 断线标识字符串
  50. 'break_match_str' => [],
  51. ];
  52. ?>

在控制器controller里面建一个控制文件Test.php

代码如下:

  1. <?php
  2. namespace app\index\controller;
  3. use think\Db;
  4. use think\Controller;
  5. class Test extends Controller
  6. {
  7. public function zz(){
  8. $data=Db::view('View_2')->select();
  9. echo json_encode($data);
  10. }
  11. }
  12. ?>

最后调用入口文件即可访问。

http://localhost:81/1111/tp5/public/index/test/zz

我的效果:

[{"111":"123","1112":"LLP","232":"1","ROW_NUMBER":"1"},{"111":"123","1112":"BB","232":"2","ROW_NUMBER":"2"}]