Работа с базой данной в Drupal 7

В Drupal 7 используется уровень абстракции баз данных, основанный на PDO. Таким образом, мы можем работать с базой данных, не заботясь о верификации пользовательских данных для предупреждения SQL-инъекций. Drupal эту работу выполняет за нас.

Примеры запросов.

SELECT

Обычный SQL-запрос:

SELECT id FROM gallery WHERE type='image' ORDER BY id ASC


Для Друпала запрос будет выглядеть так:

$result = db_select('gallery', 'ag')
  ->fields('ag', array('id'))
  ->condition('type', 'image')
  ->orderBy('id', 'asc')
  ->execute();


Обрабатываем полученный результат, формируя массив данных:

 foreach($result as $row){
        $gallery_id[]=$row->nid;
 }


Также полученный результат мы можем обработать следующим образом:

Получение отдельной записи (строки) в виде объекта

$record = $result->fetchObject();


Получение отдельной записи (строки) в виде массива

$record = $result->fetchAssoc();


Получение только первого поля следующей записи(строки)

$record = $result->fetchField();


Получение всего (полного) результата в виде массива

$record = $result->fetchAll();


Примеры других запросов:

INSERT

db_insert('gallery')
         ->fields(array(
         'gallery_id'=>$gallery_id,
         'image_id'=>$nid,
         'warning'=>$warning,
         ))
         ->execute();

UPDATE

db_update('gallery')
        ->fields(array(
        'gallery_id'=>$gallery_id,
        'warning' => $warning,
      ))
        ->condition('image_id', $nid)
        ->execute();


DELETE

db_delete('gallery')
  ->condition('id', '$id')
  ->execute();


Полезный сервис для конвертации sql-запросов в выражения DBTNG здесь.
Теги:
база данных
Добавлено: 26 Февраля 2015 17:56:12 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...