왜 당신은 SQL을 사용하지 않도록 하시겠습니까? 당신은 데이터가 이미 추출하지 않는 한
는 타입 X의 모든 노드처럼, 당신의 DB에 무엇에 대한 정보를 얻고 싶다면
은 그것을 얻을 수있는 유일한 방법은 SQL 쿼리를 통해입니다.
db_query("SELECT title, nid FROM {node} WHERE type = 'x';");
같은 쿼리 성능 유적 것은 안된다.
편집 :이주의 깊게 읽어 수 있어야 있도록 제공
링크는이, 드루팔 7에서입니다. 그 이유는 Drupal 7에서는 PHP 함수의 래퍼 인 db_query
을 사용할 수있을뿐만 아니라 mysql_query
, pg_query
입니다. 그것은 약간 다르며 그것을 사용하면 db_specific 코드를 사용하지 않아도됩니다. 어쨌든 Drupal 7의 새로운 기능은 ORM과 조금 비슷합니다. 나는 그것에 대해 자세히 읽지는 않았지만, 아이디어는 당신이 객체에 대한 명령을 사용하여 질의를 만들 수 있다는 것이다. 이것은 아마도 당신이 겪은 일입니다. 그러나 Drupal 7은 프로덕션 사이트에서 전혀 준비되지 않았습니다. 여전히 중요한 문제와 보안 문제가 많이 있습니다. 그래서 이것은 꽤 오랜 기간 동안 가능성이 없을 것입니다.
편집 2 : 당신이 배열을 추출 할 경우
$type = 'x';
$query = db_query("SELECT r.nid, r.title, r.body FROM {node} AS n
LEFT JOIN {node_revisions} AS r ON r.nid = n.nid
WHERE type = '%s';", array($type));
$nodes = array();
while ($node = db_fetch_object($query)) {
$nodes[$node->nid] = $node;
}
당신은 db_fetch_object` 대신 db_fetch_array 사용할 수 있습니다
당신이 노드의 제목과 본문을 얻고 싶은 경우에, 이것은 당신이해야 할 일이다 db의 오브젝트 대신에.
마침내이 문제를 해결했습니다. 도움을 청합니다! :) – groovehunter