Matthew Simon Cavalletto > DBIx-SQLEngine > DBIx::SQLEngine::Driver::Mysql

Download:
DBIx-SQLEngine-0.93.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  2
Open  0
View/Report Bugs
Source  

NAME ^

DBIx::SQLEngine::Driver::Mysql - Support DBD::mysql

SYNOPSIS ^

DBI Wrapper: Adds methods to a DBI database handle.

  my $sqldb = DBIx::SQLEngine->new( 'dbi:mysql:test' );

Portability Subclasses: Uses driver's idioms or emulation.

  $hash_ary = $sqldb->fetch_select( 
    table => 'students' 
    limit => 5, offset => 10
  );

DESCRIPTION ^

This package provides a subclass of DBIx::SQLEngine which compensates for MySQL's idiosyncrasies.

About Driver Subclasses

You do not need to use this package directly; when you connect to a database, the SQLEngine object is automatically re-blessed in to the appropriate subclass.

For more information about the underlying driver class, see DBD::Mysql.

DRIVER AND DATABASE FLAVORS ^

About DBMS Flavors

This driver uses the DatabaseFlavors trait in order to accomodate variations between different versions of MySQL. For more information, see DBIx::SQLEngine::Driver::Trait::DatabaseFlavors.

Detecting DBMS Flavors

default_dbms_flavor()
  $sqldb->default_dbms_flavor() : "V3_0"

By default, it is assumed that we're talking to an early version of MySQL 3.0, without transactions, unions, or stored procedures.

detect_dbms_flavor()
  $sqldb->detect_dbms_flavor() : $flavor_name

Attempts to determine which version of MySQL we're connected to based on the results of are_transactions_supported() and detect_union_supported().

If you want to take advantage of any advanced features that may be available, first call select_detect_dbms_flavor().

Version Classes

The following subclasses provide support for particular versions of MySQL:

V3_0

This is the earliest version we have a subclass for. Default. No transactions, union selects, or stored procedures.

V3_23

This is the first version with support for transactions. No union selects, or stored procedures.

V4_0

This is the first version with support for unions in select statements. No stored procedures.

V5_0

The version is still in development. It will be the first version to support stored procedures.

FETCHING DATA (SQL DQL) ^

Methods Used By Complex Queries

sql_limit()

Adds support for SQL select limit clause.

EDITING DATA (SQL DML) ^

Insert to Add Data

do_insert_with_sequence()
  $sqldb->do_insert_with_sequence( $sequence_name, %sql_clauses ) : $row_count

Implemented using _seq_do_insert_postfetch and seq_fetch_current.

seq_fetch_current()
  $sqldb->seq_fetch_current( ) : $current_value

Implemented using MySQL's "select LAST_INSERT_ID()". Note that this doesn't fetch the current sequence value for a given table, since it doesn't respect the table and field arguments, but merely returns the last sequencial value created during this session.

DEFINING STRUCTURES (SQL DDL) ^

Detect Tables and Columns

sql_detect_table()
  $sqldb->sql_detect_table ( $tablename )  : %sql_select_clauses

Implemented using MySQL's "select * from $tablename limit 1".

Column Type Methods

dbms_create_column_types()
  $sqldb->dbms_create_column_types () : %column_type_codes

Implemented using MySQL's blob and auto_increment types.

dbms_create_column_text_long_type()
  $sqldb->dbms_create_column_text_long_type () : $col_type_str

Implemented using MySQL's blob type.

INTERNAL STATEMENT METHODS (DBI STH) ^

Statement Error Handling

recoverable_query_exceptions()
  $sqldb->recoverable_query_exceptions() : @common_error_messages

Provides a list of error messages which represent common communication failures or other incidental errors.

SEE ALSO ^

See DBIx::SQLEngine for the overall interface and developer documentation.

See DBIx::SQLEngine::Docs::ReadMe for general information about this distribution, including installation and license information.

syntax highlighting: