Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 29 мар 2024, 02:15

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
СообщениеДобавлено: 17 май 2013, 14:56 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 11 апр 2013, 14:09
Сообщения: 162
Как выполнить такой запрос?
Код:
SELECT UUID();

Оказывается, MySQL сам может генерить этот UUID. Причем, используя его, UUID генерируется действительно последовательно, а не как в сторонних php-хелперах для KO. Делал 2 совершенно разных функции, по заверению разработчиков которых, генерируется именно последовательный UUID, как по RFC, а на практике нихера! Все записи пишутся вперемешку. Последняя добавленная может вставиться в середину структуры или вообще в начало. А если 20к записей и нужно добавить еще одну и она добавляется в самое начало. Мускул перелопатит всю таблицу на одну запись, а если таких записей 3 добавиться в цикле, так это вообще караул кричать можно, особенно всели одна в конец, вторая в начало, а третья в середину...

_________________
Они плакали и кололись, но продолжали есть кактус!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 май 2013, 16:12 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 11 апр 2013, 14:09
Сообщения: 162
Создал вот такую модель:
Код:
<?php defined('SYSPATH') or die('No direct script access.');

class Model_Uuid {
   
   public function generate()
   {
      $query = "SELECT UNHEX( REPLACE( UUID( ) ,  '-',  '' ) )";
      
      $uuid = DB::query(Database::SELECT, $query)
         -> execute();
      return $uuid;
   }
}

Но Кохана говорит, что возвращается не массив а Object of class Database_MySQL_Result. И действительно, выполнив запрос через phpmyadmin возвращается 0 строк, и вот такое фот значение 'f4590b65bee111e2879fb4b52f77e6ff'. Как мне это дело в переменную php присвоить?

_________________
Они плакали и кололись, но продолжали есть кактус!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 май 2013, 16:46 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 11 апр 2013, 14:09
Сообщения: 162
Интересует даже не столько как это сделать в Кохане, а вообще, как в принципе получить результат работы MySQL функций, если он возвращает 0 строк? В phpmyadmin это как-то делается.

_________________
Они плакали и кололись, но продолжали есть кактус!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 18 май 2013, 12:07 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
Kohana UUID


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 май 2013, 01:17 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 11 апр 2013, 14:09
Сообщения: 162
Не подключается он что-то. Я закинул папку uuid в папку с модулями. Она у меня тут лежит /engine/plugin/uuid. Не волнуйтесь, в настройках index.php я изменил значение переменной $modules = 'engine/plugin'; Так что все по идеи должно работать, по крайне мере дефолтные модули работают. А этот выдает ошибку:
Цитата:
ErrorException [ Fatal Error ]: Class 'UUID' not found

Вот код, которым я проверяю функцию:
Код:
public function action_uuid()
   {
      $uuid = UUID::v4();
      $this->template->content = $uuid;
   }

P.S.
Еще одно уточнение, в bootstrap.php тоже все включено:
Код:
Kohana::modules(array(
    'auth'       => MODPATH.'auth',       // Basic authentication
   // 'cache'      => MODPATH.'cache',      // Caching with multiple backends
   // 'codebench'  => MODPATH.'codebench',  // Benchmarking tool
    'database'   => MODPATH.'database',   // Database access
   // 'image'      => MODPATH.'image',      // Image manipulation
   // 'minion'     => MODPATH.'minion',     // CLI Tasks
    'orm'        => MODPATH.'orm',        // Object Relationship Mapping
   // 'unittest'   => MODPATH.'unittest',   // Unit testing
    'userguide'  => MODPATH.'userguide',  // User guide and API documentation
    'uuid'      => MODPATH.'uuid', // UUID Generator plugin
   ));

_________________
Они плакали и кололись, но продолжали есть кактус!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 май 2013, 01:32 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
А качали именно https://github.com/shadowhand/uuid/tree/3.2/develop ?

Есть ещё вот https://github.com/Qballinternet/uuid/tree/3.3/develop правда пока не принятый. Но думаю это вопрос времени


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 май 2013, 08:40 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 11 апр 2013, 14:09
Сообщения: 162
Оказывается это так делается:
Код:
$query = DB::query(Database::SELECT, "call my()");
$query->execute();

_________________
Они плакали и кололись, но продолжали есть кактус!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group