我是drupal 7的新手。
$sql = "SELECT nid, title FROM {node} n
WHERE nid $sql_op %d
AND type IN (" . implode(',', $quoted_types) . ")
AND status = 1
ORDER BY nid $order
LIMIT 1";
$result = db_query($sql, $current_node->nid, $type);
$data = db_fetch_object($result);
如何将上面的sql查询升级到drupal 7谢谢。
答案 0 :(得分:0)
对于D7,这看起来像这样:
$result = db_select('node', 'n')
->fields('n', array('nid', 'title'))
->condition('n.nid', $current_node->nid, $sql_op)
->condition('type', $type)
->condition('status', 1)
->orderBy('nid', $order)
->range(0, 1)
->execute();
$data = $result->fetchObject();
当然,未经测试,请回报是否有效。还要确保使用正确的类型,不确定为什么D6版本对类型使用IN语句,但只有一个$类型。请注意,在上面的代码中,您可以将单个值或值数组传递给condition(),两者都有效。
答案 1 :(得分:0)
试试这个:
$result = db_select('node', 'n')
->fields('n', array('nid', 'title'))
->condition('n.nid', $current_node->nid, $sql_op)
->condition('type', $quoted_types, 'IN')
->condition('status', 1)
->orderBy('nid', $order)
->range(0, 1)
->execute();
$data = $result->fetchObject();