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
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.