この質問 から、field_data_body
データベースからノードの本体を取得します。
field_data_body
にはnid
フィールドがありません。
nid
から本文を取得するには、どのクエリを使用できますか?
明確にするために、実際のサイトにダンプをインストールせずに、データベースダンプからテキストをすばやくフェッチしたかっただけです。 PHPここでは探していません。
ただし、field_data_bodyにはnidフィールドがありません。
フィールドは任意のエンティティにアタッチできるため、nidとは異なる主キーを持つ可能性があります。
reallyが直接SQLを使用する必要がある場合、次のようにフィールドをクエリできます
SELECT body_value FROM field_data_body WHERE entity_type = 'node' AND entity_id = 1
ただし、これはDrupalのいくつかのレイヤーをバイパスするため、通常は直接クエリを使用しないことを強くお勧めします。
代わりに、
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
->propertyCondition('status', NODE_PUBLISHED)
->propertyCondition('nid', 1)
;
$result = $query->execute();
$nodes = node_load_multiple(array_keys($result['node']));
foreach ($nodes as $node) {
$bodies = field_get_items('node', $node, 'body');
foreach ($bodies as $body) {
var_dump($body['safe_value']);
}
}
EFQバージョンにはいくつかの利点があります
_field_data_body
_がノードではないエンティティに関連付けられている可能性があるためだと思います。_entity_id
_フィールドをnid
フィールドと同等のものとして見る必要があります。
クエリしようとしているノードの本体コンテンツである場合は、db_query('SELECT body_value FROM `field_data_body` where entity_id = :nid, array(":nid" => $nid));
を実行します