PHPShopOrm
Материал из PHPShop CMS
Для создания унифицированных SQL запросов к БД используется класс PHPShopOrm. Использование PHPShopOrm позволяет 1-2 строками получится результат SQL запроса к БД с широкими возможностями по выборке и дальнейшей обработки результата.
Для загрузки класса используется запись:
PHPShopObj::loadClass("orm"); $PHPShopOrm = new PHPShopOrm($GLOBALS['SysValue']['base']['table_name14']);
В качестве аргумента класс принимает значение имени таблицы.
Содержание |
Выборка данных
Для выборки данных командой select используется конструкция:
$data=$PHPShopOrm->select(array('id','name'),array('id'=>'=10'),array('order'=>'id DESC'),array('limit'=>1));
Другая запись этой команды:
$PHPShopOrm->sql='select id,name from phpshop_categories where id=1 order by id DESC limit 1'; $data=$PHPShopOrm->select();
Унифицированный вариант записи для сложных выборок:
$data=$PHPShopOrm->query('select id,name from phpshop_categories where id=1 order by id DESC limit 1');
Обработка полученной информации
Если при select запросе указывается параметр limit=1 или в результате выборки находится rо 1 поле, то возвращается одномерный массив. Для его обработки используется конструкция:
$data=$PHPShopOrm->select(array('id','name'),array('id'=>'=10'),array('order'=>'id DESC'),array('limit'=>1)); extract($data); echo "Id=".$id; echo "Name=".$name;
Если указан параметр limit>1, то резульататом работы функции будеи многомерный массив. Для его обработки используется конструкция:
$data=$PHPShopOrm->select(array('id','name'),array('id'=>'=10'),array('order'=>'id DESC'),array('limit'=>100)); if(is_array($data)) foreach($data as $row){ extract($row); echo "Id=".$id; echo "Name=".$name; }
Обновление данных
Для обновления данных командой update используется конструкция:
$PHPShopOrm->update($_REQUEST,array('id'=>'=10'));
В качестве первого аргумента можно использовать массив $_POST, $_GET или записать его в явном виде array('name_new'=>'example').
Ключ массива должен содержать префикс _new для автоматического поиска и обновления БД.
Другая запись этой команды:
$PHPShopOrm->sql='update from phpshop_category set name="example" where id=10'; $PHPShopOrm->update();
Унифицированный вариант записи для сложных выборок:
$PHPShopOrm->query('update from phpshop_category set name="example" where id=10');
Вставка данных
Для обновления данных командой insert используется конструкция:
$PHPShopOrm->insert(array('name_new'=>'Hi Test2'));
В качестве первого аргумента можно использовать массив $_POST, $_GET или записать его в явном виде array('name_new'=>'example').
Ключ массива должен содержать префикс _new для автоматического поиска и обновления БД.
Другая запись этой команды:
$PHPShopOrm->sql='insert into phpshop_category set name="Hi Test2"'; $PHPShopOrm->insert();
Унифицированный вариант записи для сложных выборок:
$PHPShopOrm->query('insert into phpshop_category set name="Hi Test2"');
Удаление данных
Для обновления данных командой delete используется конструкция:
$PHPShopOrm->delete(array('id'=>'=10'));