【发布时间】:2016-03-31 15:36:16
【问题描述】:
我试图在 _config.php 中声明一个新的数据库
global $databaseConfig2;
$databaseConfig2 = array(
"type" => 'MySQLDatabase',
"server" => 'localhost',
"username" => 'local_dbuser',
"password" => 'aPassword',
"database" => 'local_db2',
"path" => '',
);
然后切换到我需要使用的控制器中的第二个数据库:
public function doStuff() {
global $databaseConfig, $databaseConfig2;
// connect to DB 2
DB::connect($databaseConfig2);
// create a query.. this will go to "databaseB"
$query = new SQLQuery("*", "MyTable");
$result = $query->execute();
// do something with the result...
// when done, switch back to the regular DB Config
DB::connect($databaseConfig);
}
我是从 http://www.silverstripe.org/community/forums/customising-the-cms/show/13692 那里得到的。但它不起作用。
另外,我尝试了这段代码,将表单中的任何值插入到这个单独的数据库中。
SecureFormInput.php
class SecureFormInput extends DataObject{
global $databaseConfig, $databaseConfig2;
DB::connect($databaseConfig2);
private static $db = array(
'FirstName' => 'Varchar',
'SureName' => 'Varchar',
'OtherName' => 'Varchar',
'DateOfBirth' => 'Date',
'Gender' => 'Boolean'
);
private static $has_one = array(
'SecureForm' => 'SecureForm'
);
DB::connect($databaseConfig);
}
【问题讨论】:
标签: php mysql silverstripe