drupal で基本的なページを作成しているときに、テキスト形式をPHP コードに選択します。これで、ここに PHP コードを記述できます。
MySQL からレコードを一覧表示したいのですが、ここにデータベース接続を含めるにはどうすればよいですか?
コンテンツに PHP コードを書くのは良い方法ですか?
db_query()
ページに何も追加せずに、 drupal API 関数を直接呼び出すことができdbconection
ます。ページ内に php コードを追加することはお勧めしません。そのための独自のモジュールを作成するか、ビューを使用してください。
まず、PHP 入力形式を使用しないでください。それが存在するという事実は Drupal で大いに議論されており、多くの人がそれを完全に削除する方向に傾いています。これはセキュリティの悪夢であり、メンテナンスの恐怖でもあります。
つまり、探している PHP は次のとおりです。
<?php
// Create an object of type SelectQuery
$query = db_select('users', 'u');
// Add extra detail to this query object: a condition, fields and a range
$query->condition('u.uid', 0, '<>');
$query->fields('u', array('uid', 'name', 'status', 'created', 'access'));
$query->range(0, 50);
?>
動的クエリの詳細については、Drupal.org を参照してください。データベースをセットアップする必要はありません。Drupal は既にそれを処理しています。
コードをメインの Drupal データベースとは異なるデータベースに接続する場合は、そのデータベースを settings.php に追加できます。
$databases['gallery']['gallery'] = array(
'driver' => 'mysql',
'database' => 'gallery',
'username' => 'username',
'password' => 'secret',
'host' => 'localhost',
);
これにより、データベース「gallery」を使用した「gallery」という新しいデータベースリソースが導入されます。「ギャラリー アプリケーション」のレコードなど、別のデータベースのリソースを使用する場合に便利です。
$options
次に、次のように - パラメータのキーを使用してそのデータベースにクエリを実行できます。
<?php
// Create an object of type SelectQuery
$query = db_select('pictures', 'p', array('target' => 'gallery'));
// Add extra detail to this query object: a condition, fields and a range
$query->condition('p.status', 'published', '=');
$query->fields('p', array('path', 'title', 'date'));
$query->range(0, 50);
?>