今天修改29dy项目,其主页面信息取自两个数据库。使用PEAR:MDB2扩展作为数据库连接,分别为$mdb2,$mdb_sub。
修改后发现取出的数据根据数据库不同而乱码,具体说就是排在后面的sql查询语句会乱码,甚至有时候会有数据库连接提示找不到table。打开数据库debug一看,才发现当查询完db1之后接着查询的db2使用的database名称并不是db2而是db1!
解决办法:
1、把所有涉及到查询的部分根据数据库分类,在做完第一个数据库查询之后使用 $mdb2->disconnect() 命令断开DB连接然后再开始下一个数据库查询
2、 MDB2使用 factory 模式连接 : $mdb2 = MDB2::factory($dsn, $dsn_options);