Class: DBI::DBD::Mysql::Driver

### Home Classes Methods

### In Files

- lib/dbd/mysql/driver.rb

### Parent

DBI::BaseDriver

### Methods

- ::new
- #__createdb
- #__dropdb
- #__reload
- #__shutdown
- #connect
- #data_sources
- #default_user

### Included Modules

- DBI::DBD::Mysql::Util

### Files

- ChangeLog
- LICENSE
- README

### Class/Module Index

Quicksearch

- DBI
- DBI::DBD
- DBI::DBD::Mysql
- DBI::DBD::Mysql::Database
- DBI::DBD::Mysql::Driver
- DBI::DBD::Mysql::Statement
- DBI::DBD::Mysql::Type
- DBI::DBD::Mysql::Type::Date
- DBI::DBD::Mysql::Util

No matching classes.

# DBI::DBD::Mysql::Driver

Models the DBI::BaseDriver API to create DBI::DriverHandle objects.

### Public Class Methods

new() click to toggle source

    # File lib/dbd/mysql/driver.rb, line 8
    def initialize
        super("0.4.0")
    end

### Public Instance Methods

__createdb(db, host, user, password, port=nil, sock=nil, flag=nil) click to toggle source

    # File lib/dbd/mysql/driver.rb, line 88
    def __createdb(db, host, user, password, port=nil, sock=nil, flag=nil)
        handle = ::Mysql.connect(host, user, password, nil, port, sock, flag)
        begin
            handle.create_db(db)
        ensure
            handle.close if handle
        end
    end

__dropdb(db, host, user, password, port=nil, sock=nil, flag=nil) click to toggle source

    # File lib/dbd/mysql/driver.rb, line 97
    def __dropdb(db, host, user, password, port=nil, sock=nil, flag=nil)
        handle = ::Mysql.connect(host, user, password, nil, port, sock, flag)
        begin
            handle.drop_db(db)
        ensure
            handle.close if handle
        end
    end

__reload(host, user, password, port=nil, sock=nil, flag=nil) click to toggle source

    # File lib/dbd/mysql/driver.rb, line 115
    def __reload(host, user, password, port=nil, sock=nil, flag=nil)
        handle = ::Mysql.connect(host, user, password, nil, port, sock, flag)
        begin
            handle.reload
        ensure
            handle.close if handle
        end
    end

__shutdown(host, user, password, port=nil, sock=nil, flag=nil) click to toggle source

    # File lib/dbd/mysql/driver.rb, line 106
    def __shutdown(host, user, password, port=nil, sock=nil, flag=nil)
        handle = ::Mysql.connect(host, user, password, nil, port, sock, flag)
        begin
            handle.shutdown
        ensure
            handle.close if handle
        end
    end

connect(dbname, user, auth, attr) click to toggle source

Parameters in the dbname as follows:

- host: host to connect to

- port: port to connect to

- socket: connect to a specific unix socket instead of a TCP socket.

- flag: an OR'd collection of flags to pass to the lower-level connection attempt.

- mysql_read_default_file: FIXME

- mysql_read_default_group: FIXME

- mysql_compression: FIXME

- mysql_local_infile: FIXME

- mysql_client_found_rows: FIXME boolean, modifies the 'flag' setting above.

    # File lib/dbd/mysql/driver.rb, line 30
    def connect(dbname, user, auth, attr)
        # connect to database server
        hash = DBI::Utils.parse_params(dbname)

        hash['host'] ||= 'localhost'

        # these two connection parameters should be passed as numbers
        hash['port'] = hash['port'].to_i unless hash['port'].nil?
        hash['flag'] = hash['flag'].nil? ? 0 : hash['flag'] = hash['flag'].to_i

        handle = ::Mysql.init

        # Look for options in connect string to be handled
        # through mysql_options() before connecting
        !hash['mysql_read_default_file'].nil? and
        handle.options(::Mysql::READ_DEFAULT_FILE,
                       hash['mysql_read_default_file'])
        !hash['mysql_read_default_group'].nil? and
        handle.options(::Mysql::READ_DEFAULT_GROUP,
                       hash['mysql_read_default_group'])
        # The following options can be handled either using mysql_options()
        # or in the flag argument to connect().
        hash['mysql_compression'].to_i != 0 and
        handle.options(::Mysql::OPT_COMPRESS, nil)
        hash['mysql_local_infile'].to_i != 0 and
        handle.options(::Mysql::OPT_LOCAL_INFILE, true)

        # Look for options to be handled in the flags argument to connect()
        if !hash['mysql_client_found_rows'].nil?
            if hash['mysql_client_found_rows'].to_i != 0
                hash['flag'] |= ::Mysql::CLIENT_FOUND_ROWS
            else
                hash['flag'] &= ~::Mysql::CLIENT_FOUND_ROWS
            end
        end

        handle.connect(hash['host'], user, auth, hash['database'], hash['port'], hash['socket'], hash['flag'])

        return Database.new(handle, attr)
    rescue MyError => err
        error(err)
    end

data_sources() click to toggle source

    # File lib/dbd/mysql/driver.rb, line 73
    def data_sources
        handle = ::Mysql.new
        res = handle.list_dbs.collect {|db| "dbi:Mysql:database=#{db}" }
        handle.close
        return res
    rescue MyError => err
        error(err)
    end

default_user() click to toggle source

    # File lib/dbd/mysql/driver.rb, line 12
    def default_user
        ['', nil]
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.