ODBC数据库驱动类
发布于:2022-01-17 09:50:54
#1 jake
试验新的数据库驱动类——ODBC驱动,这样可以支持Access,foxpro等数据库的操作了。
文件下载:
odbc.zip使用方式:
(建议用GBK编码!)1. 文件解压,放到框架目录的Drivers里面。
2. 配置:
'db' => array( // 数据库连接配置
'driver' => 'odbc', // 驱动类型
'host' => 'Driver={Microsoft Access Driver (*.mdb)};Dbq=mdb文件路径', // 链接字符串
'login' => 'root', // 用户名
'password' => '', // 密码
'prefix' => '', // 表前缀
'persistent' => FALSE, // 是否使用长链接
),
'db_driver_path' => SP_PATH.'/Drivers/odbc.php', // 自定义数据库驱动文件地址
链接字符串代表的是ODBC的链接字符串。
如:
Driver={Microsoft Access Driver (*.mdb)};Dbq=mdb文件路径Driver={SQL Server Native Client 10.0};Server=服务器;Database=数据库名;Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=EXCEL文件名;DefaultDir=默认目录
当然,很多时候,用户名和密码都是不需要的。
通常来说,PHP在windows下的安装,默认已经加入了ODBC的支持,而linux下面,基本不支持普通的ODBC。
该贴已经同步到 jake的微博
2011-03-21 20:23:00
#2 ynyjyz
又出好东西 支持
2011-03-21 20:39:01
#3 微博评论
推荐adodb数据库抽象层,支持很多数据库类型
来自 巧克力vs奶粉 的新浪微博
2011-03-22 00:44:38
#4 微博评论
不错,省了我改程序的时间了
来自 到处飞的空间 的新浪微博
2011-03-22 02:46:07
#5 jiayan41
这次使用又方便很多了,呵呵
2011-03-22 10:33:13
#6 zhgzzy
好象有点问题!!!
odbc.php 中没有 setlimit 在spModel.php 102行会出错,
odbc.php 中有个translimit 把他改名为setlimit 还是不行??
$shusers = spClass("lib_user")->findAll(array('uid'=>1));
结果如下: 多出一个空的
Array
(
[0] => Array
(
[uid] => 1
[umail] => peter
)
[1] =>
)
$shusers = spClass("lib_user")->find(array('uid'=>1));
就是一个空的没有任何输出????
2011-04-26 15:28:40
#7 jake
回复 6 zhgzzy 这里少了setlimit函数,因为Access是没有Limit功能的,当然它自己可以用数据集,但那不是SQL的方式,所以没加。
如果你是在用mssql,那么你可以把GBK版的speedphp中的mssql驱动文件里面的setlimit复制到odbc.php里面,就可以了。
2011-04-26 18:48:46
#8 zhgzzy
还是会出现下面的问题:
1. find 好象没用
2. findAll 多出一个空数组
$shusers = spClass("lib_user")->findAll(array('uid'=>1));
结果如下: 多出一个空的
Array
(
[0] => Array
(
[uid] => 1
[umail] => peter
)
[1] =>
)
$shusers = spClass("lib_user")->find(array('uid'=>1));
就是一个空的没有任何输出????
2011-04-27 10:17:18
#9 jake
不清楚你的代码,你可以通过继承自行封装find和findAll,这里ODBC驱动之所以不作为官方驱动,正是因为ODBC支持多种库,而且这些库的操作都不一样,不能统一做兼容处理。连上面你用的库是什么我也不清楚,无法提供帮助。
2011-04-27 12:42:43
#10 zhgzzy
access数据库
2011-04-27 14:08:34
#11 jake
回复 10 zhgzzy access如何用limit,这我真的没研究。你可以看看mssql的驱动,就知道为什么一个limit在驱动里面实现为什么会很复杂。
2011-04-27 23:06:24
#12 西西梅丽
Access 数据库 findAll确实多一行空记录
2011-11-04 13:17:06
#13 xiaozisha
请问下我一个网站里面,可以同时使用两种数据库吗?困惑啊
2013-05-19 22:22:21
#14 jake
xiaozisha 发表于 2013-5-19 22:22 
请问下我一个网站里面,可以同时使用两种数据库吗?困惑啊
看手册,多数据库的内容
2013-05-20 22:23:23