class DBI::DBD::Mysql::Driver
Models the DBI::BaseDriver API to create DBI::DriverHandle objects.
Public Class Methods
new()
click to toggle source
Calls superclass method
# 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