欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

cakephp 调用不同数据库中的数据表

程序员文章站 2022-05-02 14:51:07
...
在用框架cakephp做项目时遇到这样的问题:需要新建一个数据库,然后此项目与新建的库中的表链接,用loadModel('testQuestion’);然后$this->testQuestion->useDbConfig = 'testBase';这样的逻辑应该是没有问题的,但是在database配置中默认的库是wss,这个库中是没有这个表的,

Php代码

class DATABASE_CONFIG {   
  
    var $default = array(   
        'driver' => 'mysql',   
        'persistent' => false,   
        'host' => '192.168.9.10',   
        'login' => 'root',   
        'password' => '123456',   
        'database' => 'wss',   
        'encoding' => 'utf8',   
        'prefix' => '',   
    );   
        var $testBase = array(   
        'driver' => 'mysql',   
        'persistent' => false,   
        'host' => '192.168.9.10',   
        'login' => 'root',   
        'password' => '123456',   
        'database' => 'wss_test',   
        'encoding' => 'utf8',   
        'prefix' => '',   
    );  
class DATABASE_CONFIG {

	var $default = array(
		'driver' => 'mysql',
		'persistent' => false,
		'host' => '192.168.9.10',
		'login' => 'root',
		'password' => '123456',
		'database' => 'wss',
		'encoding' => 'utf8',
		'prefix' => '',
	);
        var $testBase = array(
		'driver' => 'mysql',
		'persistent' => false,
		'host' => '192.168.9.10',
		'login' => 'root',
		'password' => '123456',
		'database' => 'wss_test',
		'encoding' => 'utf8',
		'prefix' => '',
	);

那么显示页面的时候就会报404错。最后找到了解决方法,如下:

Php代码

/*  
 * testBase库中model  
 *   
 */  
class TestQuestion extends AppModel{   
    public $name = 'PreschoolTestQuestion';   
    var $useDbConfig = 'testBase';   
    var $useTable = false;   
}  
/*
 * testBase库中model
 * 
 */
class TestQuestion extends AppModel{
	public $name = 'PreschoolTestQuestion';
	var $useDbConfig = 'testBase';
	var $useTable = false;
}

就是在models文件夹下建立一个以wss_test库中的该表名为名的model文件,然后注明使用哪个库就好了。

顺便说一下:如默认的库中有这个表的话可以不用建model文件说明。如在主从库中可以这么使loadModel('testQuestion’);然后$this->testQuestion->useDbConfig = 'testBase';

以上就是cakephp 调用不同数据库中的数据表 的内容,更多相关内容请关注PHP中文网(www.php.cn)!