Child classes:

Adapter for OCI (not completed yet).
Adapter for Postgres (not completed yet)
Adapter for MySQL.
Adapter for SQLite.

Class Details

The base class for database connection adapters.

  • abstract:

Class Variables

public mixed $connection

The PDO connection object.

public static int $DEFAULT_PORT = 0

Default port.

public string $last_query

The last query run.


Default PDO options to set for each connection.

public string $protocol

The name of the protocol that is used.

public static string $QUOTE_CHARACTER = '`'

The quote character for stuff like column and field names.

Class Methods

protected Connection __construct ( array $info )

Class Connection is a singleton. Access it via instance().

  • array $info - Array containing URL parts
public boolean accepts_limit_and_order_for_update_and_delete ( )

Specifies whether or not adapter can use LIMIT/ORDER clauses with DELETE & UPDATE operations

  • return: (FALSE by default)
public array columns ( string $table )

Retrieves column meta data for the specified table.

  • string $table - Name of a table
  • return: An array of Column objects.
public void commit ( )

Commits the current transaction.

public string datetime_to_string ( DateTime $datetime )

Return a date time formatted into the database's datetime format.

  • DateTime $datetime - The DateTime object
public string date_to_string ( DateTime $datetime )

Return a date time formatted into the database's date format.

  • DateTime $datetime - The DateTime object
public string escape ( string $string )

Escapes quotes in a string.

  • string $string - The string to be quoted.
  • return: The string with any quotes in it properly escaped.
public string get_sequence_name ( string $table , string $column_name )

Return a default sequence name for the specified table.

  • string $table - Name of a table
  • string $column_name - Name of column sequence is for
  • return: sequence name or null if not supported.
public int insert_id ( [ string $sequence = null] )

Retrieve the insert id of the last model saved.

  • string $sequence - Optional name of a sequence to use
public static Connection instance ( [ string $connection_string_or_connection_name = null] )

Retrieve a database connection.

  • string $connection_string_or_connection_name - A database connection string (ex. mysql://user:pass@host[:port]/dbname) Everything after the protocol:// part is specific to the connection adapter. OR A connection name that is set in ActiveRecord\Config If null it will use the default connection specified by ActiveRecord\Config->set_default_connection
public string limit ( string $sql , int $offset , int $limit )

Adds a limit clause to the SQL query.

  • string $sql - The SQL statement.
  • int $offset - Row offset to start at.
  • int $limit - Maximum number of rows to return.
  • return: The SQL query that will limit results to specified parameters
  • abstract:
public void native_database_types ( )
  • abstract:
public string next_sequence_value ( string $sequence_name )

Return SQL for getting the next value in a sequence.

  • string $sequence_name - Name of the sequence
public static object the parse_connection_url ( string $connection_url )

Use this for any adapters that can take connection info in the form below to set the adapters connection info.

  • string $connection_url - A connection URL
  • return: parsed URL as an object.



Sqlite has a special syntax, as it does not need a database name or user authentication:



public mixed query ( string $sql , [ array &$values = array()] )

Execute a raw SQL query on the database.

  • string $sql - Raw SQL string to execute.
  • array &$values - Optional array of bind values
  • return: A result set object
public void query_and_fetch ( string $sql , $handler )

Execute a raw SQL query and fetch the results.

  • string $sql - Raw SQL string to execute.
  • Closure $handler - Closure that will be passed the fetched results.
public string query_and_fetch_one ( string $sql , [ array &$values = array()] )

Execute a query that returns maximum of one row with one field and return it.

  • string $sql - Raw SQL string to execute.
  • array &$values - Optional array of values to bind to the query.
public PDOStatement query_column_info ( string $table )

Query for column meta info and return statement handle.

  • string $table - Name of a table
  • abstract:
public PDOStatement query_for_tables ( )

Query for all tables in the current database. The result must only contain one column which has the name of the table.

  • abstract:
public string quote_name ( string $string )

Quote a name like table names and field names.

  • string $string - String to quote.
public void rollback ( )

Rollback a transaction.

public void set_encoding ( $charset )

Executes query to specify the character set for this connection.

  • $charset -
  • abstract:
public DateTime string_to_datetime ( string $string )

Converts a string representation of a datetime into a DateTime object.

  • string $string - A datetime in the form accepted by date_create()
public boolean supports_sequences ( )

Tells you if this adapter supports sequences or not.

public array tables ( )

Returns all tables for the current database.

  • return: Array containing table names.
public void transaction ( )

Starts a transaction.