Римляне уже показали пример вкладыша.Вы можете выбрать массив данных, подобный этому (обратите внимание, что debug () является необязательным и будет выводить результирующий оператор sql в верхней части страницы)
$db=$this->api->db->dsql()->table('table1 x')
->field('x.col1')
->field('sum(x.col2) col2')
// ->debug()
->join('table2 y','x.id=y.some_id')
->where('x.col3','Y')
->where('x.col4',$this->auth->api->get('id'))
->group('x.col2')
->order('x.col1')
->do_getAll();
, а затем перебирать результирующий набор, чтобы что-то сделать
foreach ($db as $row) {
if (is_array($row)) {
//do something here with row['col1'], row['col2']
}
}
просто выберите одно значение
$db=$this->api->db->dsql()->table('table1 x')
->field('x.col1')
->where('x.col2,'constant')
->do_getOne();
Вы можете обновить записи
$this->api->db->dsql()->table('table1 x')
->where('id',$somevariable)
->set('col1',$somevalue)
->debug()
->do_update();
и удалить записи
$this->api->db->dsql()->table('table1 x')
->where('id',$somevariable)
->do_delete();
Где возможно,Лучше всего использовать модели, подобные приведенным ниже, для сохранения ваших данных, но хорошая вещь в ATK4 заключается в том, что он не мешает, поэтому, если вам нужно, вы можете выполнить SQL в любом месте вашей страницы, чтобы достичь простого результата.
$s=$p->add('Model_Story')->loadData($story);
$s->set('points', $value);
$s->update();