/** * Select 普通测试 */ private function testAdapterSelect() { $select = \HuiLib\Db\Query::select()->table('test.test')->where(Where::createPair('id', 2))->limit(10)->offset(0)->enableForUpdate(); $re = $select->query(); \HuiLib\Helper\Debug::out($re->fetchAll()); echo $select->toString(); }
private function testWhereBenchMark() { Debug::mark('startSelect'); $select = Query::select('test'); Debug::mark('endSelect'); Debug::mark('startWhere'); $where1 = Where::createPair('test', 'zzzzzzzzzzzzzzzzzzzzzzz')->orCase(Where::createPlain('test is null')); $where = Where::createQuote('num in (?)', array(3, 5, 16))->andCase($where1, Where::HAND_LEFT); Debug::mark('endWhere'); //初始化adapter后才能escape $select->where($where); //echo $select->toString(); Debug::mark('startQuery'); $re = $select->query(); Debug::mark('endQuery'); \HuiLib\Helper\Debug::out($re->fetchAll()); Debug::elapsed('startSelect', 'endSelect'); Debug::elapsed('startWhere', 'endWhere'); Debug::elapsed('startQuery', 'endQuery'); Debug::elapsed('startSelect', 'endQuery'); Debug::elapsed('startSelect', 'endALL'); }
/** * 通过单个Field获取单条记录的某个字段值 * * @param string $field * @param string $value * @param string $column 要获取的字段,是字段名,不是column序号 */ public function getColumnByField($field, $value, $column) { $select = Query::select(static::TABLE); if ($this->dbAdapter !== NULL) { $select->setAdapter($this->dbAdapter); } $unit = $select->where(Where::createPair($field, $value))->limit(1)->query()->fetch(); if (isset($unit[$column])) { return $unit[$column]; } else { return false; } }
//HuiLib Db库操作指南 //HuiLib Db库由连接器Adapter和查询器Query组成。Query封装了Delete, Insert, Select, Update, Where等相关概念。 //创建原始数据连接通过DbBase类。可以通过封装过的Query类实现快速查询。 //支持事务封装,提倡使用INNODB等支持事务的储存引擎。 //一、创建原始数据库连接 //1.1 以下创建数据库主库连接,返回Adapter对象: $db = \HuiLib\Db\DbBase::createMaster(); //1.2 获取数据库连接Pdo对象或实际连接对象: $connect = $db->getConnection(); //1.3 直接发起请求: $connect->query("select count(*) from test.test"); //二、Query组件查询 //2.1 Select部分 //2.1.1 创建select对象 $select = \HuiLib\Db\Query::select(); //2.1.2 设置查询表格等操作 $select->table('test'); //2.1.3 Where条件设置支持三种形式: //键值式(createPair) $select->where(Where::createPair('id', 2)); //=> id='2' //文本式(createPlain) $select->where(Where::createPlain("name is null")); //=>"name is null" //占位式(createQuote) $select->where(Where::createQuote('id=?', 2)); //=>"id='2'" //同时支持绑定式 $select->where(Where::createPlain('t.id=:id')); $re = $select->prepare()->execute(array('id' => 14));