Примеры запросов: различия между версиями
Admin (обсуждение | вклад) Нет описания правки |
Admin (обсуждение | вклад) Нет описания правки |
||
| Строка 72: | Строка 72: | ||
$factory->Edit($datum, $where, 1); | $factory->Edit($datum, $where, 1); | ||
} | } | ||
</pre> | |||
Транзакции (доступны с версии 1.8): | |||
<pre> | |||
DB::beginTransaction(); | |||
DB::query("INSERT INTO table1 (column1) VALUES ('value1')"); | |||
DB::query("UPDATE table2 SET column2 = 'value2' WHERE id = 1"); | |||
DB::commit(); | |||
</pre> | </pre> | ||
Версия от 12:15, 2 октября 2025
Bind:
Bind::Q('GET request:home', 'NEWS::getNews');
Bind::Q('GET request:tv', 'NEWS::getNewsTV');
Bind::Q('Page/Ready ALIAS:news', 'NEWS::getRubricPosts');
Bind::Q('Page/Ready GROUP:post', 'NEWS::getPostForPublish');
Bind::Q('ApiRequest getNews', 'NEWS::Api_getPosts');
Bind::Q('ApiRequest getPost', 'NEWS::Api_getPost');
Bind::Q('ApiRequest updateNews', 'NEWS::Api_updatePost');
Bind::Q('ApiRequest getRubrics', 'NEWS::Api_getRubrics');
# Добавление - Обновление - Удаление новости
Bind::Q('ApiRequest postNotify', 'NEWS::Api_Notify_Post');
Bind::Q('ApiRequest addNews', 'NEWS::Api_Notify_newPost');
Bind::Q('ApiRequest viewNews', 'NEWS::Api_Notify_updateViewsCounter');
Bind::Q('ApiRequest ping', 'NEWS::Api_Notify_Post_DesktopCounter');
Bind::Q('DirectRequest direct:getNews', 'NEWS::Direct_getNews');
Bind::Q('DirectRequest direct:getVideo', 'NEWS::Direct_getVideo');
Bind::Q('DirectRequest direct:getPost', 'NEWS::Direct_getPost');
Bind::Q("OnAfterCatalogUpdate", 'TestCatalog::get2');
Пример запроса с кэшированием
if ($giftsDB = Cache::getCachedObject(self::$cacheLifetime, self::$cache_name)){
self::$giftsDB = $giftsDB;
} else {
$giftsDB = [];
$factory = new self();
$all = $factory->getAllIn([
//'order' => 'ID'
]);
foreach ($all as $row) {
$giftsDB[$row['ID']] = $row;
}
self::$giftsDB = $giftsDB;
if (Cache::cacheObject(
self::$cache_name, $giftsDB)) {
return self::$giftsDB;
}
}
Исправление bucket на basket в таблице заказов:
<?php
use \Core\Pattern\PageDefault;
$factory = new PageDefault();
$factory->setTableName('orders');
$opt = array("CHECK_ALLOWED" => "N");
$data = $factory->getAllIn($opt);
foreach ($data as $key => $datum) {
$datum["ORDER_JSON"] = str_replace('bucket', 'basket', $datum["ORDER_JSON"]);
$where = array("ID" => $datum["ID"]);
unset($datum["ID"]);
if(!empty($datum["count"]))
unset($datum["count"]);
$factory->Edit($datum, $where, 1);
}
Транзакции (доступны с версии 1.8):
DB::beginTransaction();
DB::query("INSERT INTO table1 (column1) VALUES ('value1')");
DB::query("UPDATE table2 SET column2 = 'value2' WHERE id = 1");
DB::commit();