Open Web Analytics/数据库访问
Open Web Analytics | Open Web Analytics基本使用 | 站点追踪以及相关应用程序 | Open Web Analytics框架|Open Web Analytics扩展 |
OWAOWA通过owa_db来提供数据库的访问,owa_db是一个专门的数据库访问层,是一个具体的数据库连接和SQL查询语句构建的实现平台。owa_db的使用可以确保你的数据库查询可以正确的执行,不论你的数据库平台是MySQL,还是PostgreSQL等。
数据库访问对象[ ]
所有的数据库访问操作都是通过OWA的数据访问对象(DAO)来实现的。你可以通过coreAPI调用dbSingleton方法来取得DAO:
$db = owa_coreAPI::dbSingleton();
构建SQL查询[ ]
owa_db为开发者提供了一种简单的方法,来构建跨平台的SQL查询语句,这些查询语句将会在OWA支持的所有不同的数据库平台中正确的被执行。owa_db使用了应该用来构建一个SQL查询的各个部分的方法。
SELECT[ ]
构建一个select查询,必须要有所要检索的表的名称这个参数:
$db->selectFrom('name_of_table');
而具体的你想查询的每一列的名称,则可以使用selectColumn方法:
$db->selectColumn('col'); $db->selectColumn('col2'); $db->selectColumn('count (col3)'); $db->selectColumn('sum (col4) as column_4');
WHERE[ ]
构建查询中的限制条件,即WHERE从句,需要使用到where方法。where方法会使用的表中某一列的名称(column_name)、值(value)、以及一个连接的操作符(默认的操作符是'='):
$db->where('column_name', 'value'); $db->where('column_name', 'value', '!=');
你也可以通过multiWhere方法来设置多个限制条件,例如:
$constraints = array(); $constraints['my_constraint'] = array('col2', 'value'); $constraints['my_constraint'] = array('col3', 'value', '!='); $db->multiWhere($constraints);
GROUP BY[ ]
GROUP BY从句可以使用groupBy方法来添加:
$db->groupBy('column_name');
ORDER BY[ ]
ORDER BY从句可以通过orderBy方法来添加:
$db->orderBy('column_name');
ORDER[ ]
ORDER从句是利用order方法来添加的。通过两个常量值来实现降序排列(OWA_SQL_DESCENDING)和升序排列(OWA_SQL_ASCENDING):
$db->order(OWA_SQL_DESCENDING);
LIMIT[ ]
LIMIT从句使用limit方法来添加,limit方法会用到数字值,这些数字值是代表你想在查询返回的结果中看到的结果行数:
$db->limit(10);
OFFSET[ ]
OFFSET从句使用offset方法来添加。offset方法也使用一个数字值,表示返回结果的偏移限制;
$db->offset(10);
执行这个查询[ ]
owa_db为SELECT查询提供了两种执行方式。
getAllRows方法用来执行会返回多行结果的查询:
$db->getAllRows();
getOneRow方法是用来执行只返回一行结果的查询:
$db->getOneRow();
INSERT[ ]
- 构建一个INSERT查询,首先需要明确给出insertInto方法将要插入数据的数据库表名称:
$db->insertInto('table_name');
- 现在使用set方法来设置具体想要插入的列(属性)的名称以及对应的值:
$db->set('name', 'value');
- 执行这个查询,使用executeQuery方法:
$ret = $db->executeQuery(); if ($ret == true) { $this->debug('Query executed successfully'); } else { $this->debug('Query did not execute successfully'); }
UPDATE[ ]
- 构造UPDATE(更新)查询,首先是明确给出updateTable方法将要操作的数据库表的名称:
$db->updateTable('table_name');
- 设置具体需要更新的属性名以及值:
$db->set('name', 'value');
- 使用executeQuery方法来执行这个语句:
$ret = $db->executeQuery(); if ($ret == true) { $this->debug('Query executed successfully'); } else { $this->debug('Query did not execute successfully'); }
参考来源[ ]
Open Web Analytics使用手册导航 | ||||||||
---|---|---|---|---|---|---|---|---|
|