【问题标题】:Drupal 7 / Views mysql syntax errorDrupal 7 / 查看 mysql 语法错误
【发布时间】:2014-02-04 17:25:42
【问题描述】:

我已尝试搜索,但没有找到与我的情况相匹配的好答案。

我有一个由 drupal 管理的数据库结构。我希望将该结构用于同一服务器上的另一个上下文中,制作一个 php 文件,该文件对数据库进行 sql 查询并将结果获取到不由 drupal 管理的页面中(在这种特定情况下,drupal 更像是一个用户界面内容管理器,而不是用于网站设计的真正 CMS)。

我已经安装了视图并设置了选项和标准,以便从我的 php 脚本所需的字段中提取数据。

预览准确地显示了我正在询问的字段,查询显示如下:

SELECT node.title AS node_title, node.nid AS nid, node.created AS node_created, 'node'       AS field_data_field_descrizione_node_entity_type, 'node' AS  field_data_field_web_node_entity_type, 'node' AS field_data_field_logo_node_entity_type
FROM 
{node} node
WHERE (( (node.type IN  ('collaborazioni')) ))
ORDER BY node_created DESC

我设法使用 php 脚本连接到完全相同的服务器和数据库,但是当我发送查询时,我收到了这个 mysql_error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL     server version for the right syntax to use near '} node WHERE (( (node.status = '1') AND     (node.type IN ('collaborazioni')) )) ' at line 3

我真的不知道怎么了,也许你能帮我解决这个问题?提前感谢您的帮助。

【问题讨论】:

  • 尝试作为 WHERE node.type IN ('collaborazioni')

标签: php mysql sql drupal-7 drupal-views


【解决方案1】:

Drupal 在视图预览查询中使用表别名。它在实际查询发送到数据库之前被替换。别名部分是{node},它指向数据库中的节点表,但添加了您在站点安装期间输入的表前缀。如果您没有使用数据库前缀,则只需删除查询的 {node} 部分。如果你这样做了,那么你应该用prefix_node替换{node}

所以没有前缀应该是:

SELECT node.title AS node_title, node.nid AS nid, node.created AS node_created, 'node'       AS field_data_field_descrizione_node_entity_type, 'node' AS  field_data_field_web_node_entity_type, 'node' AS field_data_field_logo_node_entity_type
FROM 
node
WHERE (( (node.type IN  ('collaborazioni')) ))
ORDER BY node_created DESC

它应该是前缀(当然用你使用的前缀替换查询的“前缀”部分):

SELECT node.title AS node_title, node.nid AS nid, node.created AS node_created, 'node'       AS field_data_field_descrizione_node_entity_type, 'node' AS  field_data_field_web_node_entity_type, 'node' AS field_data_field_logo_node_entity_type
FROM 
prefix_node node
WHERE (( (node.type IN  ('collaborazioni')) ))
ORDER BY node_created DESC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    相关资源
    最近更新 更多