我想连接到数据库2在我的PHP项目。
一个是从我们的售票系统的现有数据库使用MS ACESS,另一种是用现在的MYSQL的一个IM。
使用的MS访问只是为了从中检索和MySQL的数据将被用来检索和存储数据。
是否有可能在同一时间连接到两个数据库?
我想连接到数据库2在我的PHP项目。
一个是从我们的售票系统的现有数据库使用MS ACESS,另一种是用现在的MYSQL的一个IM。
使用的MS访问只是为了从中检索和MySQL的数据将被用来检索和存储数据。
是否有可能在同一时间连接到两个数据库?
简短的回答: 是的 。
长一点的回答:
你应该确保你的代码总是使用连接标识符,以避免混乱,并有干净的,可读的代码。 (尤其是当你使用像ODBC或PDO的抽象层连接到两个数据库)
请看PHP手册上PDO和连接管理
例:
$link_mysql = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$link_msaccess = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\test.mdb");
// query MySQL DB
foreach($link_mysql->query('SELECT * FROM test') as $row) {
print_r($row);
}
// query MS Access DB
foreach($link_msaccess->query('SELECT * FROM omg_its_access') as $row) {
print_r($row);
}
例如但PDO:
$link_mysql = mysql_connect("localhost", $user, $pass);
mysql_select_db("test", $link_mysql);
$link_msaccess = odbc_connect("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\test.mdb");
// you may omit the link identifier for MySQL, but i suggest to use it explicitly
$res1 = mysql_query('SELECT * FROM test', $link_mysql);
while ($row = mysql_fetch_row($res1)) {
print_r($row);
}
// for ODBC the link identifier is mandatory
$res2 = odbc_exec($link_msaccess, 'SELECT * FROM omg_its_access');
while ($row = odbc_fetch_row($res2)) {
print_r($row);
}
正如你看到的上面,两个数据库驱动代码的区别在于它的语法-这就是为什么我建议使用PDO。
PDO会避免很多的麻烦,如果你决定这样做以后将切换到另一个数据库驱动程序要容易得多。 它通过抽象所有数据库驱动程序,并为您提供了一个简单的界面来处理它们都具有相同的语法。
如果您使用的PDO ,例如,这就是可能的。 只需创建一个PDO对象为每个连接-只使用MySQL的驱动程序为MySQL和访问ODBC连接 。