Комментарии

Формирование запросов на ввод средствами класса JDatabaseQuery
( 0 Голосов )

В классе JDatabaseQuery предоставляются два альтернативных варианта для формирования запросов на ввод по команде INSERT. Один из них состоит в использовании метода set () для установки каждого столбца по отдельности, а второй — в применении методов columns () и values () для установки столбцов группой. Ниже приведен пример запроса по команде INSERT, составленный на SQL для ввода строки в таблицу соответствий jos_joompro_sub_mapping.

INSERT INTO jos_joompro_sub_mapping (subscription_id, user_id, start_date, end_date) VALUES (123, 234, '2014-01-01 12:00:00', '2014-12-31 12:00:00');

А вот как тот же самый запрос формируется в коде компонента подписок с помощью метода set () из класса JDatabaseQuery.

$query =  $db->getQuery(true);
$query->insert('# joomprc_sub_mapping');
$query->set('subscription_id = ' . (int) $subID); 
$query->set('user_id = ' . (int) $userID);
$query->set('start_date  = '. $db->quote($startDate));
$query->set('end_date = '. $db->quote($endDate));

В качестве аргумента методу set () передается символьная строка, содержащая имя столбца, знак равенства и буквальное значение, устанавливаемое в столбце. В данном примере каждый столбец устанавливается отдельным вызовом метода set (). А несколько столбцов можно установить в одной строке кода, указав символьные строки списком через запятую. С другой стороны, то же самое можно сделать, воспользовавшись методами columns () и values (), как показано ниже.

$query = $db->getQuery(true);
$query->insert('# joompro_sub_mapping');
$query->columns('subscription_id, user_id, start_date, end_date');
$query->values((int) $subID . ',' . (int) $userID . ','
. $db->quote($startDate) . ',' . $db->quote($endDate));

В данном случае метод columns () служит для именования устанавливаемых столбцов. Если опустить его вызов, то в таблице будут установлены все столбцы. Затем вызывается метод values () для составления списка значений, разделяемых запятой, предназначенных для установки каждого столбца.


Понравился материал? Пригодилась информация? Плюсани в социалки!


Вам также будет интересно:

 
Похожие новости