十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本文实例讲述了PHP利用pdo_odbc实现连接数据库。分享给大家供大家参考,具体如下:
专注于为中小企业提供做网站、网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业茄子河免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了超过千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
目的:从sql
server数据库里面把某个视图文件调用出来,以键值对的方式显示在页面上。
利用pdo
odbc来实现PHP连接数据库:
在PHP配置文件里面开启pdo_odbc.dll服务。重启Apache服务器。
在ThinkPHP5.1的项目中在模块里添加config添加规定好的样式数据库:
代码如下:
?php
return
[
//
数据库类型
'type'
=
'sqlsrv',
//
服务器地址
'hostname'
=
'localhost',
//
数据库名
'database'
=
'mysql',
//
用户名
'username'
=
'sa',
//
密码
'password'
=
'123456',
//
端口
'hostport'
=
'',
//
连接dsn
'dsn'
=
'odbc:Driver={SQL
Server};Server=localhost;Database=mysql',
//
数据库连接参数
'params'
=
[],
//
数据库编码默认采用utf8
'charset'
=
'utf8',
//
数据库表前缀
'prefix'
=
'',
//
数据库调试模式
'debug'
=
true,
//
数据库部署方式:0
集中式(单一服务器),1
分布式(主从服务器)
'deploy'
=
0,
//
数据库读写是否分离
主从式有效
'rw_separate'
=
false,
//
读写分离后
主服务器数量
'master_num'
=
1,
//
指定从服务器序号
'slave_no'
=
'',
//
是否严格检查字段是否存在
'fields_strict'
=
true,
//
数据集返回类型
'resultset_type'
=
'array',
//
自动写入时间戳字段
'auto_timestamp'
=
false,
//
时间字段取出后的默认时间格式
'datetime_format'
=
'Y-m-d
H:i:s',
//
是否需要进行SQL性能分析
'sql_explain'
=
false,
//
Builder类
'builder'
=
'',
//
Query类
'query'
=
'\\think\\db\\Query',
//
是否需要断线重连
'break_reconnect'
=
false,
//
断线标识字符串
'break_match_str'
=
[],
];
?
在控制器controller里面建一个控制文件Test.php
代码如下:
?php
namespace
app\index\controller;
use
think\Db;
use
think\Controller;
class
Test
extends
Controller
{
public
function
zz(){
$data=Db::view('View_2')-select();
echo
json_encode($data);
}
}
?
最后调用入口文件即可访问。
我的效果:
[{"111":"123","1112":"LLP","232":"1","ROW_NUMBER":"1"},{"111":"123","1112":"BB","232":"2","ROW_NUMBER":"2"}]
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend
FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
您可能感兴趣的文章:ThinkPHP实现多数据库连接的解决方法tp5(thinkPHP5)框架实现多数据库查询的方法ThinkPHP3.1新特性之多数据库操作更加完善tp5(thinkPHP5)框架连接数据库的方法示例PHP7使用ODBC连接SQL
Server2008
R2数据库示例【基于thinkPHP5.1框架】thinkPHP5实现的查询数据库并返回json数据实例tp5(thinkPHP5)操作mongoDB数据库的方法tp5(thinkPHP5)框架数据库Db增删改查常见操作总结thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
本文实例讲述了PHP使用ODBC连接数据库的方法。分享给大家供大家参考。具体实现方法如下:
!DOCTYPE
html
PUBLIC
"-//W3C//DTD
XHTML
1.0
Strict//EN"
""
html
xmlns=""
xml:lang="en"
lang="en"
head
titlePHP
and
ODBC:
XHTML
Example
1/title
meta
http-equiv="Content-Type"
content="text/html;
charset=UTF-8"
/
/head
body
?php
$conn
=
odbc_connect(
"DRIVER={MySQL
ODBC
3.51
Driver};Server=localhost;Database=phpodbcdb",
"username",
"password");
if
(!($conn))
{
echo
"pConnection
to
DB
via
ODBC
failed:
";
echo
odbc_errormsg
($conn
);
echo
"/p\n";
}
$sql
=
"SELECT
1
as
test";
$rs
=
odbc_exec($conn,$sql);
echo
"tabletr";
echo
"thTest/th/tr";
while
(odbc_fetch_row($rs))
{
$result
=
odbc_result($rs,"test");
echo
"trtd$result/td/tr";
}
odbc_close($conn);
echo
"/table";
?
/body
/html
希望本文所述对大家的php程序设计有所帮助。
Progress的ODBC并不是通用的,需要用专门的ODBC工具软件来连接,最常用的是Merant ODBC,此以Merant3.7来介绍如何连接progress数据库,由于可能存在不同的操作系统,当然连接方式有些不同.使用Merant3.7需要在客户端安装Progress数据库才可以.
服务端unix(即数据库存放在unix上),客户端window2000服务器配置:
1.在/etc/services配置文件中添加一行启动odbc的端口,例如:
merant 6000/tcp # merantODBC的端口
2.在需要使用odbc的用户的.profile文件中增加变量及路径例如:
DLC=/dlc/91e /*安装的progress的路径*/
PROOIBRK=/dlc/91e/bin/_prooibk /*需要调用的程序的路径*/PROOIDRV=/dlc/91e/bin/_prooidv /*需要调用的程序的路径*/PATH=/dlc/91e/bin:$PATH
export PATH
export DLC
export PROOIBRK
export PROOIDRV
3.执行启动odbc的命令
例如:
/dlc/91e/bin/_prooibk -SV -S merant /*根据progress安装的目录不同会不同,merant是services中增加的端口名称,两边可以随便取名字但必须一样*/客户端配置:
1.同服务端配置一样需要在C:WINNTsystem32driversetc的services文件中增加一行例如:
merant 6000/tcp # merantODBC的端口
2.在系统控制台增加环境变量,建议增加系统的环境变量,根据客户端progress安装的目录不同,可能有所不同DLC c:dlc The directory where you installed the Progress client piecesIDLC c:dlc Required only for 8.1 or higher clientsPROMSGS c:dlcpromsgs The directory and name of the message fileIPROMSGS c:dlcpromsgs Required only for 8.1 or higher clientsPATH c:dlcbin;c:dlc;c:winNTsystem32;%path% Example for Windows NTTEMP c:temp
3.在odbc数据源中作如下配置:
general:
data source name:自己取名
description:随便
database name:数据库的名字
user id:不填
oid/oib options:
protocol:tcp
service name:在services文件中加的merantodbc的端口名称host name:服务器的名称或ip(建议用ip,否则还要在hosts文件中加解析)database options:
database access mode:via server
protocol:tcp
service name:启动数据库的端口名(是在服务端启动数据库服务的端口名也是在服务端的services文件中)host name:启动数据库服务的机器名或ip(推荐ip)完成后应该可以连接上了
然而文档中在COM部分却提得很少。
这儿是几个我试过的例子。希望这些给你一些概念。注意的是这些只能运行在32位的MicrosoftWindows平台下。
用php激活ADO
ADO是Microsoft的数据库对象技术。ADO里面包括连接数据库的对象,从查询语句中返回数据的记录集对象和表现数据元素的字段对象。
许多数据库不直接支持ADO.代之的是很多数据库支持低两级的Microsoft数据库技术:ODBC和OLEDB.许多数据库支持ODBC;但OLEDB有比ODBC更快的名声。
ADO则是包装ODBC和OLEDB的API.
这个例了打开一个新的ADO连接对象,对过ODBC打开一个传统的ACCESS数据库,然后我们执行SQL查询,会返回一个记录集对象。然后我们显示记录集的前三个字段。