Drupal 7 无法从Drupal 7中的其他数据库获取数据
我正在尝试从Drupal7中的另一个数据库获取数据。但我无法获得数据。这是我试过的代码Drupal 7 无法从Drupal 7中的其他数据库获取数据,drupal-7,Drupal 7,我正在尝试从Drupal7中的另一个数据库获取数据。但我无法获得数据。这是我试过的代码 我在settings.php中添加了另一个数据库信息 $databases['default']['default'] = array( 'driver' => 'mysql', 'database' => 'drupal_testing', 'username' => 'root', 'password' => '', 'host' => 'localhos
$databases['default']['default'] = array(
'driver' => 'mysql',
'database' => 'drupal_testing',
'username' => 'root',
'password' => '',
'host' => 'localhost',
'prefix' => '',
);
$databases['sakshi']['default'] = array(
'driver' => 'mysql',
'database' => 'test',
'username' => 'root',
'password' => '',
'host' => 'localhost',
'prefix' => '',
);
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12 padtop30">
<h4> DB Connection test </h4>
<?php
try{
echo "inside try block";
db_set_active('sakshi');
$results = db_query("select name from test.user_names where phone = 432323");
$records = $results->fetchAll();
foreach ($records as $record) {
echo $record;
}
}catch(\PDOException $ex){
echo "inside catch block";
echo $ex;
}finally{
echo "finally block is executed";
db_set_active('default');
}
?>
</div>
我对Drupal是新手。有谁能帮我这方面的忙。虽然根据文档,您建立第二个连接的方式没有问题,但我从未能让它像那样工作。我让它工作的唯一方法是使用以下内容,尽管我同意这似乎没有什么根本性的不同:
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'drupal_db',
'username' => 'root',
'password' => 'password',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
'second_database' =>
array (
'default' =>
array (
'driver' => 'mysql',
'database' => 'second_db',
'username' => 'root',
'password' => 'password',
'host' => 'localhost',
'port' => '',
'prefix' => '',
),
),
);
然后您应该能够执行db\u set\u active(“第二个数据库”)
“找不到基表或视图:1146 table'test.semaphore'not exist'”消息通常出现在Drupal试图在仍然连接到第二个数据库的情况下执行Druply操作时,因此不要忘记执行db_set_active()将连接返回到Drupal数据库。无需添加“default”,因为默认值是假定的默认数据库
您应该在获取所需数据后直接执行此操作。因此,在您的示例中,它应该位于$records=$results->fetchAll()之后代码>
或者,如果您只在一个地方/不经常需要此连接,您可以动态设置它。更多信息
希望这有帮助
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'drupal_db',
'username' => 'root',
'password' => 'password',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
'second_database' =>
array (
'default' =>
array (
'driver' => 'mysql',
'database' => 'second_db',
'username' => 'root',
'password' => 'password',
'host' => 'localhost',
'port' => '',
'prefix' => '',
),
),
);