Overview

Class for SQL select generation and results.

<?php
$select = Solar::factory('Solar_Sql_Select');

// select these columns from the 'contacts' table
$select->from('contacts', array(
  'id',
    'n_last',
    'n_first',
    'adr_street',
    'adr_city',
    'adr_region AS state',
    'adr_postcode AS zip',
    'adr_country',
));

// on these ANDed conditions
$select->where('n_last = :lastname');
$select->where('adr_city = :city');

// reverse-ordered by first name
$select->order('n_first DESC')

// get 50 per page, when we limit by page
$select->setPaging(50);

// bind data into the query.
// remember :lastname and :city in the where() calls above.
$data = ('lastname' => 'Jones', 'city' => 'Memphis');
$select->bind($data);

// limit by which page of results we want
$select->limitPage(1);

// get a PDOStatement object
$result = $select->fetchPdo();

// alternatively, get an array of all rows
$rows = $select->fetchAll();

// or an array of one row
$rows = $select->fetchOne();

// find out the count of rows, and how many pages there are.
// this comes back as an array('count' => ?, 'pages' => ?).
$total = $select->countPages();

Package

This class is part of the Solar_Sql package.

Inheritance:

Configuration Keys

  • sql: A Solar_Sql dependency object.

  • paging: Number of rows per page.

Constants

Public Properties

The Solar_Sql_Select class has no public properties; try the list of all properties.

Public Methods

These are all the public methods in the Solar_Sql_Select class.

You can also view the list of all public, protected, and private methods.

__construct()

Constructor.

__destruct()

Default destructor; does nothing other than provide a safe fallback for calls to parent::__destruct().

__toString()

Returns this object as an SQL statement string.

bind()

Adds data to bind into the query.

clear()

Clears query properties and row sources.

cols()

Adds 1 or more columns to the SELECT, without regard to a FROM or JOIN.

compoundLimit()

Sets a compound limit count and offset to the query; used only in UNION (etc) queries.

compoundLimitPage()

Sets the compound limit and count by page number; used only in UNION (etc) queries.

compoundOrder()

Adds a compound row order to the query; used only in UNION (etc) queries.

countPages()

Get the count of rows and number of pages for the current query.

distinct()

Makes the query SELECT DISTINCT.

dump()

Convenience method for getting a dump the whole object, or one of its properties, or an external variable.

fetch()

Fetch the results based on the current query properties.

fetchAll()

Fetches all rows from the database using sequential keys.

fetchAssoc()

Fetches all rows from the database using associative keys (defined by the first column).

fetchCol()

Fetches the first column of all rows as a sequential array.

fetchOne()

Fetches one row from the database.

fetchPairs()

Fetches an associative array of all rows as key-value pairs (first column is the key, second column is the value).

fetchPdo()

Fetches a PDOStatement result object.

fetchSql()

Builds the SQL statement and returns it as a string instead of executing it.

fetchValue()

Fetches the very first value (i.e., first column of the first row).

from()

Adds a FROM table and columns to the query.

fromSelect()

Adds a sub-select and columns to the query.

getPaging()

Gets the number of rows per page.

group()

Adds grouping to the query.

having()

Adds a HAVING condition to the query by AND.

innerJoin()

Adds an INNER JOIN table and columns to the query.

innerJoinSelect()

Adds an INNER JOIN sub-select and columns to the query.

join()

Adds a JOIN table and columns to the query.

leftJoin()

Adds a LEFT JOIN table and columns to the query.

leftJoinSelect()

Adds a LEFT JOIN sub-select and columns to the query.

limit()

Sets a limit count and offset to the query.

limitPage()

Sets the limit and count by page number.

locale()

Looks up class-specific locale strings based on a key.

multiHaving()

Adds multiple HAVING conditions to the query.

multiJoin()

Adds multiple JOINs to the query.

multiWhere()

Adds multiple WHERE conditions to the query.

orHaving()

Adds a HAVING condition to the query by OR.

orWhere()

Adds a WHERE condition to the query by OR.

order()

Adds a row order to the query.

quote()

Safely quotes a value for an SQL statement.

quoteInto()

Quotes a value and places into a piece of text at a placeholder.

quoteMulti()

Quote multiple text-and-value pieces.

setPaging()

Sets the number of rows per page.

unbind()

Unsets bound data.

union()

Takes the current select properties and prepares them for UNION with the next set of select properties.

unionAll()

Takes the current select properties and prepares them for UNION ALL with the next set of select properties.

where()

Adds a WHERE condition to the query by AND.



Local