Заметки об Amiro.CMS

Как посмотреть сформированный через API запрос к MySQL серверу

19.07.12 17:15

Долго пришлось помучиться, чтобы найти способ вывести MySQL запрос собранный через API Amiro.CMS в законченном виде в браузер.

Все дело в том, что на текущий момент документация по ссылке http://manual.amiro.ru/docs/api6/DB/DB_Query.html откровенно вводит в заблуждение:

Предложенный вариант (с поправками под наши нужды)

	$sql = DB_Query::getUpdateQuery(
		'cms_es_items',
		array(
			'ext_picture' => DB_Query::getSnippet('%s')->q($cover_image)
		),
		DB_Query::getSnippet('WHERE `sku`=%s')->q($itemSku)
	);
	var_dump($sql);

Выдаст через var_dump() что-то типа следующего

object(DB_Snippet)#8 (2) {
  ["snippet":protected]=>
  string(28) "UPDATE %s%s SET `%s` = %s %s"
  ["aArgs":protected]=>
  array(5) {
    [0]=>
    string(0) ""
    [1]=>
    string(12) "cms_es_items"
    [2]=>
    string(11) "ext_picture"
    [3]=>
    object(DB_Snippet)#5 (2) {
      ["snippet":protected]=>
      string(2) "%s"
      ["aArgs":protected]=>
      array(1) {
        [0]=>
        string(20) "'05132135.cover.jpg'"
      }
    }
    [4]=>
    object(DB_Snippet)#9 (2) {
      ["snippet":protected]=>
      string(14) "WHERE `sku`=%s"
      ["aArgs":protected]=>
      array(1) {
        [0]=>
        string(9) "'5132135'"
      }
    }
  }
}

Но тут нам опять же пришла на помощь все та же документация по API (http://manual.amiro.ru/docs/api6/DB/DB_Query.html#methodget):

// Returns query string.
public get ( [ string $forceFields = '' ] ) returns string;

    string $forceFields
Return only these fields in selection if passed

Правим наш код

	$sql = DB_Query::getUpdateQuery(
		'cms_es_items',
		array(
			'ext_picture' => DB_Query::getSnippet('%s')->q($cover_image)
		),
		DB_Query::getSnippet('WHERE `sku`=%s')->q($itemSku)
	);
	var_dump($sql->get());

И этот вариант работает на "Ура"!

string(82) "UPDATE cms_es_items SET `ext_picture` = '05132135.cover.jpg' WHERE `sku`='5132135'"


Рубрики: PHPкодим API Разработка плагинов MySQL Отладка


« Как добавить несколько товаров в корзину одним запросом - 1  | В начало |  Как получить ID пользователя в плагине »



При перепечатке, копировании материалов с сайта прямая и активная ссылка, разрешенная для индексации поисковыми роботами, на источник www.amirocmspro.ru обязательна!

Поиск по сайту

Loading

Облако тегов

5.10.x 5.12.0.4 5.14.x.x 6.0.x AMI AMI::getOption Amiro.CMS AMI_Registry AMI_RequestHTTP API CSS DBD MySQL DB_Query ErrorDocument getPluginOption HTML https INSERT jQuery modId mod_rewrite MySQL Perl PHP PHPкодим pluginId sm_tree.tpl SSL subs_send_single Tools



Купить Amiro CMS

Хотите купить платную редакцию Amiro.CMS? Напишите нам!




Почему коммерческие CMSПочему Amiro.CMSПоискПартнеры и друзьяКарта сайта
2010-2014 © AmiroCMSPro.ru | Amiro.CMS глазами администратора системы. - проект nsk21.ru
Лучший хостинг для сайтов на Амиро.CMS». Учебе время - потехе час!
Работает на Amiro CMS - Free