我需要在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方式。
感谢您的帮助
答案 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提供的方法来利用现有的数据库连接来执行查询。
您有两种主要方法可供选择:
*从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中的第一个真正的项目,它非常有趣和具有挑战性,我期待更多的编码冒险。