OpenCart Database Access Objects
$this->load->library('OcDao');
$ocDao = new OcDao($this->registry, false);
如果您需要启用调试模式,在创建 OcDao 对象的时候,第二个参数请传入 true, 之后每一次执行 SQL 语句,都将打印当前执行的 SQL 语句以及调用文件和行数,方便您调试。生产环境下,请关闭。以免暴露相关信息。
...
$ocDao = new OcDao($this->registry, true);
$ocDao->reset()->insert('user', ['username' => "hiscaler"])->execute();
$ocDao->reset()->update('user', ['username' => 'John'], ['id' => 1])->execute();
$user = $this->ocDao
->reset()
->from('{{%user}}')
->select(['user_id', 'username'])
->orderBy(['user_id' => SORT_DESC])
->one();
one()
函数如果返回 false 表示没有查询到相应的数据,否则的话返回一个键值对数组,键为字段名,值为字段保存值。
生成的 SQL 如下:
SELECT `user_id`, `username` FROM `oc_user` ORDER BY `user_id` DESC LIMIT 0, 1
$users = $this->ocDao
->reset()
->from('{{%user}}')
->select(['user_id', 'username'])
->limit(2)
->orderBy(['user_id' => SORT_DESC])
->all();
all()
总是返回一个数组,无论是否成功,如果返回的是空数组则表示没有查询到您要的数据。
生成的 SQL 如下:
SELECT `user_id`, `username` FROM `oc_user` ORDER BY `user_id` DESC LIMIT 0, 2