thinkcmf 5 访问2个mysql数据库?

我有一个 thinkcmf 5开发的小网站, 需要访问到两个数据库, 其中默认数据库在/data/conf的目录下已经配置正确,并且网站基本功能可以使用。另外一个扩展数据库在同一服务器上,因此我在/app目录下的config.php 文件中添加了扩展数据库的连接信息(和默认数据库只有数据库名称的不同),扩展数据库名称为db_zhongwen。

目前要在后台一个PHP文件中,调用扩展数据库的一个自定义存储函数Hello('aa','bb')。但总是无法成功

代码如下: 
$idom_proc="call Hello('aa','bb')";
$con=Db::connect("db_zhongwen");
$idion_result =$con->query($idom_proc);
return $idion_result;

注释: Hello函数只是一个单纯的字符串拼接函数,在MySQL中单独执行成功。 整体代码在 $idion_result =$con->query($idom_proc); 这一句就执行不下去了。请高手指教!

目前采用查询前在存储函数对象前加上数据库的名称, 但是返回值一直为空。

$idom_proc="select zhongwen.Hello('aa','bb')";

 $idion_result =Db::query($idom_proc);

但是奇怪的是,一直返回为空。 不知是什么问题。

奇怪了,把程序放到其它目录下是可以正常执行的, 放到ThinkPHP中就不行。

根据你提供的信息,我认为可能是以下原因导致调用扩展数据库自定义函数失败:

  1. Db::connect() 函数调用不正确

请确认 Db::connect() 函数中传递的参数是否正确。在你的代码中,你传递了字符串 "db_zhongwen",但是请确认需要传递的参数应该是一个包含数据库连接信息的数组,包括数据库类型、主机地址、用户名、密码和数据库名称。可以参考默认数据库的连接信息进行设置。

  1. 存储过程名称或参数不正确

请确认你调用的存储过程名称是否正确,并且存储过程需要的参数是否正确传递。你在提供的信息中没有提到存储过程的代码,如果存储过程中存在语法错误或逻辑错误也可能导致调用失败,需要进行检查和调试。

  1. 数据库用户权限不足

请确认你使用的数据库用户是否有权限调用该存储过程。可以进入数据库进行查看或者联系数据库管理员进行授权。

希望以上信息能够帮助你解决问题,如有问题可以进一步提问。