是否可以使用dsql()的任何方法进行查询?
类似的东西:
$dq=$this->api->db->dsql()->execute('insert into table xx (field1,field2) values ('a','b')');
由于
答案 0 :(得分:3)
DSQL 现在已重构为单独的库:https://git.io/dsql
$this->api->db->dsql()->table('table')->set('field1','a')->set('field2','b')->do_insert();
当然你也可以使用
$this->api->db->dsql()->table('table')->set($associative_array)->do_insert();
答案 1 :(得分:1)
罗马人已经展示了一个插入物的例子。您可以选择这样的数据数组(注意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();