连接到MYSQL - 如何在setting.php中访问数据库数组

时间:2014-03-28 03:14:38

标签: php mysql drupal drupal-7

我需要在drupal 7的php文件中连接到我的数据库。每次从本地服务器移动到开发服务器时,我都看到setting.php文件有数据库数组。

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'my_db',
      'username' => 'root',
      'password' => '',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

如何在drupal 7中使用此数据库数组以使用它连接到数据库

$con = mysqli_connect('localhost','root','','my_db');

我正在寻找实现这一目标的drupal方式。

感谢您的帮助

3 个答案:

答案 0 :(得分:0)

这样的事情应该有效:

    include "settings.php";
    $con=mysqli_connect($databases['default']['default']['host'],$databases['default']['default']['username'],$databases['default']['default']['password'],$databases['default']['default']['database']);

您只需要从数组中获取这些值。

答案 1 :(得分:0)

编辑:我的想法是错误的编程语言。遗憾。

再次编辑:删除标准的PHP数据库查询方法,转而使用Drupal方法。

根据您提供的document,您无需在Drupal环境中创建数据库连接。您可以使用Drupal提供的方法来利用现有的数据库连接来执行查询。

您有两种主要方法可供选择:

  1. db_query() - 适用于非限制性结果
  2. db_query_range() - 相当于在sql中添加“LIMIT X,Y”
  3. *从Drupal文档中,以下SQL:

    SELECT n.nid, n.title, n.created FROM node n WHERE n.uid = $uid
      ORDER BY n.created DESC LIMIT 0, 10;
    

    最好在Drupal执行:

    $result = db_query_range('SELECT n.nid, n.title, n.created
      FROM {node} n WHERE n.uid = :uid
      ORDER BY n.created DESC', 0, 10, array(':uid' => $uid));
    

    同样,最好引用此document,并使用Drupal方法。

答案 2 :(得分:0)

我在设置RSS提要时遇到了这个问题,以动态利用存储在Drupal 7中的settings.php中的数据库常量。我需要动态地获取该文件中$ databases数组中的信息。以下是我如何解决它(运行PHP 5.3)。

$INC_DIR = $_SERVER["DOCUMENT_ROOT"]. "/sites/default/";
include($INC_DIR. "settings.php"); 

$connection = @mysql_connect($databases['default']['default']['host'],$databases['default']['default']['username'],$databases['default']['default']['password'])
or die ('Could not connect to database');

mysql_select_db($databases['default']['default']['database'])
or die ('Could not select database');

前两行解决了制作不同文件夹/更改文件结构的问题,只是将脚本指向文件,你只需要瞄准" / sites / default /"如果您的文件位于其他位置,则从您的文档根目录开始,然后include语句将获取实际的文件信息,以便您可以在脚本中进一步使用它。

$ connection脚本也是直截了当的,给你登录服务器,然后选择数据库,使用你通过上面引用的include语句访问的$ databases数组值进入数据库,这样RSS代码可以运行。

这个RSS源是我在PHP中的第一个真正的项目,它非常有趣和具有挑战性,我期待更多的编码冒险。