本文整理汇总了PHP中SelectQuery::field方法的典型用法代码示例。如果您正苦于以下问题:PHP SelectQuery::field方法的具体用法?PHP SelectQuery::field怎么用?PHP SelectQuery::field使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SelectQuery
的用法示例。
在下文中一共展示了SelectQuery::field方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: search
public static function search(TableCtl $controller, $term, $filter = false)
{
$object = call_user_func(array(get_class($controller), 'getObject'));
if (!$object) {
return false;
}
$terms = preg_split('/[ ,]/', $term);
if (!count($terms)) {
return false;
}
//Check for results containing the word
$search = array();
foreach ($terms as $oneTerm) {
$search[] = '`word` LIKE CONCAT("%", ?, "%")';
}
//Check for results with the exact word
$search[] = '`word` IN (' . implode(', ', array_fill(0, count($terms), '?')) . ')';
$search = '(' . implode(') OR (', $search) . ')';
$params = array_merge(array($object->getSource()), $terms, $terms);
$query = new SelectQuery(get_called_class());
$query->field('DISTINCT `' . $object->getMeta('table') . '`.*')->leftJoin(get_class($controller), '`' . $object->getMeta('table') . '`.`' . $object->getMeta('id_field') . '` = `table_id`')->filter('`table` = ?')->filter($search)->order('`count` DESC, `sequence`');
if ($filter) {
if (is_array($filter)) {
foreach ($filter as $one_fil) {
$query->filter($one_fil);
}
} else {
$query->filter($filter);
}
}
$result = $query->fetchAll($params);
return $result;
}
示例2: remember
public static function remember($user)
{
//We need a user, but we won't remember the admin user.
//if ($user && $user->id > 0 && !in_array('superadmin', $user->roles)) {
if ($user && $user->id > 0) {
$random = get_random('number');
$persist = new PersistUserObj();
$data = array('user_id' => $user->id, 'random' => $random);
if ($persist->create($data)) {
$query = new SelectQuery('PersistUser');
$query->field('MD5(CONCAT(`id`, `user_id`, `random`))')->filter('`id`= :id');
$hash = $query->fetchColumn(array(':id' => $persist->array['id']));
if (setcookie('remembered', $hash, time() + 60 * 60 * 24 * 14, WEB_SUB_FOLDER)) {
return true;
} else {
Backend::addError('Could not set cookie to remember login');
$query = new DeleteQuery('PersistUser');
$query->filter('`id` = :id')->limit(1);
$query->execute(array(':id' => $persist->array['id']));
}
} else {
Backend::addError('Could not remember login');
}
} else {
Backend::addError('Invalid user to remember');
}
return false;
}
示例3: getComments
public static function getComments($table = false, $table_id = false, $limit = false)
{
$query = new SelectQuery('Comment');
$query->field(array('`comments`.*, `backend_users`.`username`, `backend_users`.`email`'))->leftJoin('BackendUser', '`comments`.`user_id` = `backend_users`.`id`')->filter('`comments`.`active` = 1')->order('IF(`comments`.`in_reply_to` = 0, `comments`.`id`, `comments`.`in_reply_to`) DESC');
$params = array();
if ($table) {
$query->filter('`comments`.`foreign_table` = :table');
$params[':table'] = $table;
}
if ($table_id) {
$query->filter('`comments`.`foreign_id` = :table_id');
$params[':table_id'] = $table_id;
}
if ($limit) {
$query->limit($limit);
}
return $query->fetchAll($params);
}
示例4: get
public static function get($id, array $options = array())
{
$tag = Tag::retrieve($id, 'dbobject');
if (!$tag || !$tag->array) {
return false;
}
$links = self::getObject($tag->array['foreign_table']);
list($query, $params) = $links->getSelectSQL();
if (!$query instanceof SelectQuery) {
return false;
}
$query_links = new SelectQuery('TagLink');
$query_links->field('`foreign_id`')->filter('`tag_id` = :tag_id');
if (array_key_exists('active', $links->getMeta('fields'))) {
$query_links->filter('`active` = 1');
}
$order = $query_links->getOrder();
if (empty($order) && array_key_exists('added', $links->getMeta('fields'))) {
$query_links->order('`added` DESC');
}
$start = array_key_exists('start', $options) ? $options['start'] : 0;
$count = array_key_exists('count', $options) ? $options['count'] : Value::get('list_length', 5);
$query->field(':tag_id AS `tag_id`')->filter('`' . $links->getMeta('id_field') . '` IN (' . $query_links . ')')->limit("{$start}, {$count}");
$params = array(':tag_id' => $tag->getMeta('id'));
$links->load(array('mode' => 'list', 'query' => $query, 'parameters' => $params));
$tag->array['list'] = $links->list;
$tag->array['list_count'] = $links->list_count;
return $tag;
}
示例5: userVisits
public static function userVisits($user_id)
{
$query = new SelectQuery('BackendRequest');
$query->field('COUNT(*) AS `visits`')->filter('`user_id` = :user_id')->group('`user_id`');
return $query->fetchColumn(array(':user_id' => $user_id));
}
示例6: hook_init
public static function hook_init()
{
//Check for any system locks
$query = new SelectQuery('BackendLock');
$query->field('`name`')->filter('`type` = :type')->filter('`locked` = 1')->filter('`expire` > NOW()');
while ($lock_name = $query->fetchColumn(array(':type' => self::LOCK_SYSTEM))) {
$lock = BackendLock::retrieve($lock_name, 'dbobject');
if (!$lock->check()) {
//A Lock isn't available, so the request must be aborted.
Controller::whoops('Service Unavailable', array('message' => 'System Offline until ' . $lock->array['expire'] . '. Locked under ' . $lock->array['name'], 'code_hint' => 503));
header('X-Backend-Lock: ' . $lock->array['name']);
header('X-Backend-Lock-Expire: ' . $lock->array['expire']);
}
}
}
示例7: userStats
public static function userStats()
{
$msg = array();
$query = new SelectQuery('BackendUser');
$query->field('COUNT(*) AS `Total`, SUM(IF(TO_DAYS(NOW()) - TO_DAYS(`added`) < 7, 1, 0)) AS `New`')->filter('`active` = 1')->filter('`confirmed` = 1');
if ($stats = $query->fetchAssoc()) {
$msg[] = 'There are a total of ' . $stats['Total'] . ' **active** users,
of which ' . $stats['New'] . ' signed up in the last 7 days';
}
$query = new SelectQuery('BackendUser');
$query->field('COUNT(*) AS `Total`, SUM(IF(TO_DAYS(NOW()) - TO_DAYS(`added`) < 7, 1, 0)) AS `New`')->filter('`active` = 1')->filter('`confirmed` = 1');
if ($stats = $query->fetchAssoc()) {
$msg[] = 'There are a total of ' . $stats['Total'] . ' **unconfirmed** users,
of which ' . $stats['New'] . ' signed up in the last 7 days';
}
$msg = implode(PHP_EOL . PHP_EOL, $msg);
send_email(ConfigValue::get('author.Email', ConfigValue::get('application.Email', 'info@' . SITE_DOMAIN)), 'User stats for ' . Backend::get('Title'), $msg);
return true;
}
示例8: getSelectSQL
public function getSelectSQL($options = array())
{
//Check the DB Connection
$this->error_msg = false;
if (!$this->checkConnection()) {
if (class_exists('BackendError', false)) {
BackendError::add(get_class($this) . ': DB Connection Error', 'getSelectSQL');
}
$this->error_msg = 'DB Connection Error';
return false;
}
$mode = array_key_exists('mode', $options) ? $options['mode'] : 'list';
$query = new SelectQuery($this, array('connection' => $this->db));
//Fields
$fields = array_key_exists('fields', $options) ? $options['fields'] : array();
if (empty($fields)) {
$query->field("`{$this->meta['table']}`.*");
} else {
$query->field($fields);
}
//Joins
$joins = array_key_exists('joins', $options) ? $options['joins'] : array();
if (count($joins)) {
foreach ($joins as $join) {
if (is_array($join)) {
$query->joinArray($join);
}
}
}
$q_params = array();
if (!empty($options['conditions'])) {
$query->filter($options['conditions']);
}
//Mode specific
$limit = false;
switch ($mode) {
case 'object':
case 'array':
case 'full_object':
if (!empty($this->meta['id'])) {
$query->filter("`{$this->meta['table']}`.`{$this->meta['id_field']}` = :{$this->meta['table']}_id");
$q_params[":{$this->meta['table']}_id"] = $this->meta['id'];
} else {
$query->limit(empty($limit) ? 1 : $limit);
}
break;
case 'list':
if (array_key_exists('limit', $options) && $options['limit'] != 'all') {
$query->limit($options['limit']);
}
break;
}
//Parameters
if (array_key_exists('parameters', $options)) {
if (is_array($options['parameters'])) {
$q_params = array_merge($q_params, $options['parameters']);
} else {
$q_params[] = $options['parameters'];
}
} else {
if (!empty($this->meta['parameters'])) {
if (is_array($this->meta['parameters'])) {
$q_params = array_merge($q_params, $this->meta['parameters']);
} else {
$q_params[] = $parameters;
}
}
}
//Filters
if (array_key_exists('filters', $options)) {
$query->filter($options['filters']);
} else {
if (!empty($this->meta['filters'])) {
$query->filter($this->meta['filters']);
}
}
//Order
if (array_key_exists('order', $options)) {
$query->order($options['order']);
} else {
if (!empty($this->meta['order'])) {
$query->order($this->meta['order']);
}
}
//Group
if (array_key_exists('group', $options)) {
$query->group($options['group']);
} else {
if (!empty($this->meta['group'])) {
$query->group($this->meta['group']);
}
}
//Check Ownership
if (array_key_exists('owner_id', $this->meta['fields'])) {
if ($user = BackendUser::check()) {
if (!in_array('superadmin', $user->roles)) {
$query->filter("`{$this->meta['table']}`.`owner_id` = :owner_id");
$q_params[':owner_id'] = $user->id;
}
}
//.........这里部分代码省略.........