Закрыть

Вход

Вход на сайт

Карта сайта



MODX Revo база данных - работа с бд в modx через MODX API



Выполнение произвольных запросов к бд через MODx Revo API

Создание сайтов редко обходится без построения своих(произвольных) запросов к базе данных. Но в MODx Revolution вся работа с базой данных ведется через xPDO и для выполнения произвольных запросов рекомендуется создать сначала модель таблицы или нескольких связанных таблиц, то есть сгенерировать XML-описание таблицы и PHP-класс модели.

И этот подход к работе с бд не всегда бывает удобен, а так же занимает определенное время, отодвигая сдачу проекта. Для быстрого выполнения произвольного запроса к бд в таком случае пригодится объект xPDO - xPDOCriteria. Использовать данный метод можно в любом месте сайта, где доступен глобальный объект системы - $modx, это могут быть различные плагины, сниппеты или же отдельные скрипты использующие MODx API

Как выполнить свой запрос к базе через MODx Revo API

Например, следующий код выведет все заголовки и алиасы первых пяти документов сайта, у которых id больше 10:

$table = 'modx_site_content';

$sql = "SELECT `id`, `pagetitle`, `alias` FROM `$table`
WHERE `id` > :id
LIMIT 5;";

$query = new xPDOCriteria($modx, $sql, array(
':id' => '10'
));

if ($query->prepare() && $query->stmt->execute()){

$res = $query->stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($res as $row){
print_r($row);
}

}else echo "Запрос не выполнен";

А такой код вставит запись в произвольную таблицу - modx_myTable:

$sTable = 'modx_myTable';

$aData = array(
'data' => "Произвольные данные",
'date' => time(), //Текущая дата
);

$sql = "INSERT
INTO modx_external_statistic (data, date)
VALUES (:data, :date);";

$query = new xPDOCriteria($modx, $sql, array(
':data' => $aData['data'],
':date' => $aData['date'],
));

if ($query->prepare() && $query->stmt->execute()){
echo 'Данные сохранены';
}

Как видно из примеров, выполнение своих запросов к базе в MODx Revolution сделать очень легко. И для этого вовсе не обязательно генерировать XML-схему и создавать PHP-класс таблицы.



Все уроки по MODx Revolution

Комментарии(2)

  1. Создание сайтов и интернет магазинов


    Дмитрий:
    16-08-2014 14:41

    Подскажите, при записи в БД записываются иероглифы. И выводятся соответственно тоже иероглифы. Как это исправить?

  2. Создание сайтов и интернет магазинов


    Сергей:
    19-08-2014 07:41

    Дмитрий, скорее всего нужно верно установить кодировку соединения с базой. Например, для кодировки utf-8 - $sql = "SET NAMES utf8";

Комментировать

* Поля обязательны для заполнения

Популярные статьи

Пакеты услуг

Сайт под ключ "Базовый"
Создание сайта под ключПрофессиональный сайт под ключ на популярных системах управления - Modx или Joomla >>>
Корпоративный сайт
Корпоративный сайтCтруктурированный ресурс компании, включающий каталог для развития Вашего бизнеса >>>
Интернет-магазин
Интернет-магазинЛучшее решение на сегодняшний день для продажи любых товаров >>>