SilverStripe将数据保存到外部表

时间:2015-09-15 09:33:10

标签: php silverstripe

在SilverStripe中,如何将数据保存到SilverStripe尚未创建的外部数据库表中?

例如: 我创建了一个News表,并希望 - 如果我添加一个新的新闻项目 - 相同的数据存储在我之前的新闻表中。

2 个答案:

答案 0 :(得分:3)

我会创建一个安静的API来保持独立,因此您不需要在SilverStripe站点中保留外部数据库凭据。

例如,您可以使用https://github.com/guzzle/guzzle将新闻发布到SilverStripe站点(onAfterWrite)的外部站点(外部数据库所在的位置)。在外部站点上,您需要创建一个简单的API服务器来监听Post请求,如果有效则将它们保存在db中。什么是sql注射!

希望它有所帮助。

答案 1 :(得分:0)

如果表格相同,您实际上只需切换数据库配置,然后使用ORM然后切换回来......

$otherDB = array(
    "type"      => 'MySQLDatabase',
    "server"    => 'localhost',
    "username"  => 'new_user',
    "password"  => 'xxxx',
    "path"      => '',
    "database"  => 'new_database'
);

DB::connect($otherDB);
//Use ORM to write

//revert to normal credentials
global $databaseConfig;
DB::connect($databaseConfig);