Новости

Как исправить JavaScript error "ВКонтакте"? Что делать при ошибках JavaScript в "ВКонтакте"?
"ВКонтакте" - это на сегодняшний день самый удобный русскоязычный ресурс, который является не только популярнейшей социальной сетью, но и сервисом для прослушивания аудиозаписей и просмотра видео. Здесь

Правильное использование Tor Browser
Tor Browser полностью анонимен – Миф или реальность? Многие считают, что Tor — это полностью анонимное и безопасное средство для интернет-серфинга, которое не дает никому возможность контролировать то,

Javascript error object is not a function вконтакте как исправить
"ВКонтакте" - это на сегодняшний день самый удобный русскоязычный ресурс, который является не только популярнейшей социальной сетью, но и сервисом для прослушивания аудиозаписей и просмотра видео. Здесь

Как исправить ошибку javascript error вконтакте
На сегодняшний день «Вконтакте» является наиболее удобным русскоязычным ресурсом, который представляет собой не только крупнейшую социальной сеть, но и сервис для просмотра видео и прослушивания аудиозаписей.

Что такое JavaScript и для чего он используется?
Подробности декабря 10, 2015 Просмотров: 20225 В интернете миллионы веб-страниц,

Практика javascript синтаксис написания
Javascript — это язык программирования, который активно используется для построения динамических веб страниц. Собственно с этой целью он и был изобретен. У нашего с вами языка еще есть такое интересное

JavaScript учебник
Код функций в JavaScript начинает выполнение после их вызова. Функции являются одним из наиболее важных строительных блоков кода в JavaScript. Функции состоят из набора команд и обычно выполняют

Рекомендации решившим начать изучать JavaScript
Если вы решили начать изучать JavaScript , то эта статья для вас. Надеюсь, что её прочтение избавит вас в будущем от множества ошибок и сделает его изучения более простым, быстрым и эффективным. В статье

Как включить JavaScript в обозревателе? - Мои статьи - Каталог статей - Помощь чайникам!
Для нормальной работы сайта необходимо включить в обозревателе JavaScript. Для этого выполните следующие действия: Internet Explorer (6.0) В верхней строке меню выберите "Сервис". Выберите "Свойства

Как сделать юнит тесты для игры на js?
Добрый день. Есть браузерная игра на js, весь код в одном файле, файл подключается к html. Возник вопрос о том, как сделать юнит тесты для игры. Смотрел примеры на mocha и jasmine, но там тестируются

Drupal 7: работа с базой данных

Опубликовано: 06.10.2017

видео Drupal 7: работа с базой данных

Drupal 7 Представления: Сортировка

В своем стремлении к абстракции от конкретной БД разработчики Drupal, похоже, неплохо так выворачивают извилины. Разработчикам модулей приходится тоже изворачиваться. Ниже приведены отличия в запросах к БД между 6-й и 7-й версиями Drupal.



Теперь различают статический запрос (static query) и динамический запрос (dynamic query) . Примеры приведены ниже.

Обычно методы запроса возвращают объект SelectQuery, что позволяет использовать цепочку вызовов вроде db_select()->method1()->method2() .

//**** выборка всех значений по условию, в результате получаем массив объектов //**** затем используем foreach ($nodes as $node) { ... } //**** в особо ответственных случаях необходимо использовать addTag('node_access') //**** для проверки прав на исполнение этого запроса // Drupal 6 $nodes = db_query ( "SELECT nid, title FROM {node} WHERE type = '%s' AND uid = %d" , 'page' , 1 ) ;   // Drupal 7, статический запрос $nodes = db_query ( " SELECT nid, title FROM {node} WHERE type = :type AND uid = :uid " , array ( ':type' = > 'page' , ':uid' = > 1 ) ) -> fetchAll ( ) ;   // Drupal 7, динамический запрос $nodes = db_select ( 'node' , 'n' ) - > fields ( 'n' , array ( 'nid' , 'title' ) ) - > condition ( 'n.type' , 'page' ) - > condition ( 'n.uid' , 1 ) - > addTag ( 'node_access' ) - > execute ( ) - > fetchAll ( ) ;   //**** получение единственной записи // Drupal 6 $title = db_result ( db_query ( "SELECT title FROM {node} WHERE nid = %d" , 123 ) ) ;   // Drupal 7, статический запрос $title = db_query ( "SELECT title FROM {node} WHERE nid = :nid" , array ( ':nid' = > 123 ) ) -> fetchField ( ) ;   // Drupal 7, динамический запрос $title = db_select ( 'node' , 'n' ) - > fields ( 'n' , array ( 'title' ) ) - > condition ( 'n.nid' , 123 ) - > execute ( ) - > fetchField ( ) ;   //**** получение объекта по его id // Drupal 6 $node = db_fetch_object ( db_query ( "SELECT * FROM {node} WHERE nid = %d" , 123 ) ) ;   // Drupal 7, статический запрос $node = db_query ( "SELECT * FROM {node} WHERE nid = :nid" , array ( ':nid' = > 123 ) ) -> fetchObject ( ) ;   // Drupal 7, динамический запрос $node = db_select ( 'node' , 'n' ) - > fields ( 'n' ) - > condition ( 'n.nid' , 123 ) - > execute ( ) - > fetchObject ( ) ;   //**** использование INNER JOIN //**** Тут необходимо помнить, что некоторые методы (например джоины) не возвращают объект SelectQuery, //**** и поэтому их нельзя использовать в цепочке вызовов. // Drupal 6 $nodes = db_query ( "SELECT n.title, u.name FROM {node} n INNER JOIN {users} u ON n.uid = u.uid" ) ;   // Drupal 7, статический запрос $nodes = db_query ( "SELECT n.title, u.name FROM {node} n INNER JOIN {users} u ON n.uid = u.uid " ) -> fetchAll ( ) ;   // Drupal 7, динамический запрос $query = db_select ( 'node' , 'n' ) ; $query -> innerJoin ( 'users' , 'u' , 'n.uid = u.uid' ) ; $query -> fields ( 'n' , array ( 'title' ) ) ; $query -> fields ( 'u' , array ( 'name' ) ) ; $nodes = $query -> execute ( ) -> fetchAll ( ) ;   //**** поиск минимального значения // Drupal 6 $min = db_result ( db_query ( "SELECT MIN(fieldname) FROM {table}" ) ) ;   // Drupal 7, статический запрос $min = db_query ( "SELECT MIN(fieldname) FROM {table}" ) -> fetchField ( ) ;   // Drupal 7, динамический запрос $query = db_select ( 'table' ) ; $query -> addExpression ( 'MIN(fieldname)' ) ; $min = $query -> execute ( ) -> fetchField ( ) ;   //**** выборка заданного количества записей // Drupal 6 $nodes = db_query ( "SELECT * FROM {node} LIMIT 0, 10" ) ;   // Drupal 7, статический запрос $nodes = db_query ( "SELECT * FROM {node} LIMIT 0, 10" ) -> fetchAll ( ) ;   // Drupal 7, динамический запрос $nodes = db_select ( 'node' , 'n' ) - > fields ( 'n' ) - > range ( 0 , 10 ) - > execute ( ) - > fetchAll ( ) ;   //**** подсчет количества записей // Drupal 6 $count = db_result ( db_query ( "SELECT COUNT(*) FROM {node} n WHERE n.uid = 1" ) ) ;   // Drupal 7, статический запрос $count = db_query ( "SELECT COUNT(*) FROM {node} n WHERE n.uid = 1" ) -> fetchField ( ) ;   // Drupal 7, динамический запрос, вариант 1 $count = db_select ( 'node' , 'n' ) - > condition ( 'n.uid' , 1 ) - > countQuery ( ) - > execute ( ) - > fetchField ( ) ;   // Drupal 7, динамический запрос, вариант 2 $query = db_select ( 'node' ) ; $query -> addExpression ( 'COUNT(*)' ) ; $count = $query -> execute ( ) -> fetchField ( ) ;   //**** использование логического оператора OR // Drupal 6 $nodes = db_query ( "SELECT * FROM {node} WHERE uid = %d OR status = %d" , 1 , 0 ) ;   // Drupal 7, статический зспрос $nodes = db_query ( "SELECT * FROM {node} WHERE uid = :uid OR status = :status" , array ( ':uid' = > 1 , ':status' = > 0 ) ) -> fetchAll ( ) ;   // Drupal 7, динамический запрос $nodes = db_select ( 'node' , 'n' ) - > fields ( 'n' ) - > condition ( db_or ( ) - > condition ( 'uid' , 1 ) - > condition ( 'status' , 0 ) ) -> execute ( ) - > fetchAll ( ) ;   //**** использование оператора IN $nds = array ( 1 , 2 , 3 ) ; // Drupal 6 $nodes = db_query ( "SELECT * FROM {node} WHERE nid IN (" . db_placeholders ( $nds ) . ")" , $nds ) ;   // Drupal 7, статический запрос $nodes = db_query ( "SELECT * FROM {node} WHERE nid IN (:nds)" , array ( ':nds' = > $nds ) ) -> fetchAll ( ) ;   // Drupal 7, динамический запрос $nodes = db_select ( 'node' , 'n' ) - > fields ( 'n' ) - > condition ( 'n.nid' , $nds , 'IN' ) - > execute ( ) - > fetchAll ( ) ;   //**** использование оператора LIKE // Drupal 6 $nodes = db_query ( "SELECT * FROM {node} WHERE title LIKE '%%%s%%'" , 'substring' ) ;   // Drupal 7, статический запрос $nodes = db_query ( "SELECT * FROM {node} WHERE title LIKE :title" , array ( ':title' = > '%' . db_like ( 'substring' ) . '%' ) ) -> fetchAll ( ) ;   // Drupal 7, динамический запрос $nodes = db_select ( 'node' , 'n' ) - > fields ( 'n' ) - > condition ( 'n.title' , '%' . db_like ( 'substring' ) . '%' , 'LIKE' ) - > execute ( ) - > fetchAll ( ) ;   //**** использование оператора BETWEEN // Drupal 6 $nodes = db_query ( "SELECT * FROM {node} WHERE nid BETWEEN %d AND %d" , 123 , 456 ) ;   // Drupal 7, статический запрос $nodes = db_query ( "SELECT * FROM {node} WHERE nid BETWEEN :nid1 AND :nid2" , array ( ':nid1' = > 123 , ':nid2' = > 456 ) ) -> fetchAll ( ) ;   // Drupal 7, динамический запрос $nodes = db_select ( 'node' , 'n' ) - > fields ( 'n' ) - > condition ( 'n.nid' , array ( 123 , 456 ) , 'BETWEEN' ) - > execute ( ) - > fetchAll ( ) ;   //**** сложные условия в WHERE: // Drupal 6 $nodes = db_query ( "SELECT * FROM {node} WHERE YEAR(FROM_UNIXTIME(created)) = %d" , 2011 ) ;   // Drupal 7, статический запрос $nodes = db_query ( "SELECT * FROM {node} WHERE YEAR(FROM_UNIXTIME(created)) = :created" , array ( ':created' = > 2011 ) ) -> fetchAll ( ) ;   // Drupal 7, динамический запрос $nodes = db_select ( 'node' , 'n' ) - > fields ( 'n' ) - > where ( 'YEAR(FROM_UNIXTIME(n.created)) = :created' , array ( ':created' = > 2011 ) ) - > execute ( ) - > fetchAll ( ) ;   //**** проверка значения на NULL // Drupal 6, Drupal 7 статический запрос $result = db_query ( "SELECT * FROM {table} WHERE field IS NULL" ) ;   // Drupal 7, динамический запрос, вариант 1 $result = db_select ( 'table' , 't' ) - > fields ( 't' ) - > condition ( 't.field' , NULL , 'IS NULL' ) - > execute ( ) ;   // Drupal 7, динамический запрос, вариант 2 $result = db_select ( 'table' , 't' ) - > fields ( 't' ) - > isNull ( 't.field' ) - > execute ( ) ;   //**** сортировка // Drupal 6 $nodes = db_query ( "SELECT * FROM {node} ORDER BY created DESC, title ASC" ) ;   // Drupal 7, статический запрос $nodes = db_query ( "SELECT * FROM {node} ORDER BY created DESC, title ASC" ) -> fetchAll ( ) ;   // Drupal 7, динамический запрос $nodes = db_select ( 'node' , 'n' ) - > fields ( 'n' ) - > orderBy ( 'n.created' , 'DESC' ) - > orderBy ( 'n.title' , 'ASC' ) - > execute ( ) - > fetchAll ( ) ;

В INSERT по прежнему можно использовать drupal_write_record()


3. САЙТ НА DRUPAL 8. Резервное копирование сайта и базы данных.

rss