1

我正处于为与我合作的公司建立网站的计划阶段。这家公司是一家电子产品批发商,希望获得更好的网络形象。他们当前的 POS 系统使用 PervasiveSQL 作为数据库。我将使用 MySQL 作为网站数据库,使用 PHP 作为语言。

但是,我想将此网站与当前数据库集成;我想让网站使用它自己的数据库,以防万一发生入侵,一切都不会受到损害。当网站接受订单时,我希望它也被复制到他们的 POS 系统中。

我该怎么做呢?我是否只是在我的代码中编写第二个 INSERT 语句并插入到两个数据库中?有没有一种我可以使用的方法,当数据库将某些内容插入表中时,它会触发一个事件,该事件将插入的信息放入另一个数据库中?我问这个是因为当新产品或客户帐户添加到原始 POS 系统中时,我希望将该信息放置在网站数据库中。

4

2 回答 2

1

根据您的描述,您可能会做的是让网站使用只读凭据访问 POS 系统的数据库。那么你就不需要复制数据了。如果该网站被利用,攻击者将无法获得对 POS 数据库的写入权限。

如果您需要从 Web 应用程序写入 POS 数据库,并且担心直接访问它,您可以在两者之间放置一个 Web 服务(只能从您的内部网络访问),然后调用它而不是访问 POS直接数据库。实际上,放置一个 Web 服务也是从 POS 系统读取数据的好方法。

基本上,复制数据和保持同步可能是一个大问题,如果有选择,最好避免。

于 2013-11-10T05:47:59.110 回答
0

你没有说你将如何编码你的数据库连接,但是很有可能同时连接到多个数据库,因为没有任何限制。

让我们假设您正在使用 PDO。

要连接到 2 个数据库,您可以使用:

$db1 = new PDO('mysql:host=localhost;dbname=database1;charset=utf8', 
'username1', 'password1');

$db2 = new PDO('mysql:host=localhost;dbname=database2;charset=utf8', 
'username2', 'password2');

这将导致 2 个数据库引用 $db1 和 $db2

要插入两个数据库,然后在查询提交中使用引用

$result1 = $db1->exec("INSERT INTO table(firstname, lastname) VAULES('John', 'Doe')");
$result2 = $db2->exec("INSERT INTO table(firstname, lastname) VAULES('John', 'Doe')");
于 2013-11-10T09:45:27.013 回答