如何使用 SQL 查询获取 drupal 7 中节点的实际文件?
How can I get the actual files of a node in drupal 7 with SQL query?
我必须从 drupal 7 数据库中获取数据,但是没有 drupal 环境,所以我不能使用默认的 drupal 类 来获取它,只能使用 SQL 代码。
我想获取一个节点的文件,我写了这段代码:
SELECT
tny_t.uri as tny,
tny_t.filename as tny_name,
FROM ".$type."
LEFT JOIN dr_node
ON dr_node.nid= ".$type.".entity_id
LEFT JOIN dr_field_revision_field_teljes_tm_nynyilatkozat
ON dr_field_revision_field_teljes_tm_nynyilatkozat.entity_id=".$type.".entity_id
LEFT JOIN dr_file_managed as tny_t
ON tny_t.fid= dr_field_revision_field_teljes_tm_nynyilatkozat.field_teljes_tm_nynyilatkozat_fid
WHERE dr_node.nid = ".$nid."
它给我文件,但并不总是好的文件,因为旧文件及时被替换为其他文件。我想这给了我旧文件。
在您的情况下,您必须使用 "file_usage" table 谁跟踪文件的使用位置。
文件使用模式:
因此您可以使用此请求查看与特定节点相关的所有文件:
'SELECT * FROM file_usage fu
LEFT JOIN file_managed fm ON fu.fid = fm.fid
WHERE fu.type = "node"
AND fu.id ='. $nid
我必须从 drupal 7 数据库中获取数据,但是没有 drupal 环境,所以我不能使用默认的 drupal 类 来获取它,只能使用 SQL 代码。
我想获取一个节点的文件,我写了这段代码:
SELECT
tny_t.uri as tny,
tny_t.filename as tny_name,
FROM ".$type."
LEFT JOIN dr_node
ON dr_node.nid= ".$type.".entity_id
LEFT JOIN dr_field_revision_field_teljes_tm_nynyilatkozat
ON dr_field_revision_field_teljes_tm_nynyilatkozat.entity_id=".$type.".entity_id
LEFT JOIN dr_file_managed as tny_t
ON tny_t.fid= dr_field_revision_field_teljes_tm_nynyilatkozat.field_teljes_tm_nynyilatkozat_fid
WHERE dr_node.nid = ".$nid."
它给我文件,但并不总是好的文件,因为旧文件及时被替换为其他文件。我想这给了我旧文件。
在您的情况下,您必须使用 "file_usage" table 谁跟踪文件的使用位置。
文件使用模式:
因此您可以使用此请求查看与特定节点相关的所有文件:
'SELECT * FROM file_usage fu
LEFT JOIN file_managed fm ON fu.fid = fm.fid
WHERE fu.type = "node"
AND fu.id ='. $nid