MySQLdb dan Python

Sudah lama tidak nengok ke blog, saatnya untuk berbagi. Nah, kali ini berhubungan dengan bahasa pemrograman Python, dan database MySQL..

Langsung saja ya.. nah, apabila anda ingin melakukan koneksi database. Jika ketika memasukkan ke commandline python.

>>import MySQLdb
Traceback (most recent call last):
  File "", line 1, in 
    import mysqldb
ImportError: No module named MySQLdb

maka, harus diinstall dulu pake sinaptic

$sudo apt-get install python-mysqldb

lalu, lakukan import lagi, jika masih ada masalah yang muncul kayak gini..

>>>import MySQLdb

Warning (from warnings module):
  File "/var/lib/python-support/python2.6/MySQLdb/__init__.py", line 34
    from sets import ImmutableSet
DeprecationWarning: the sets module is deprecated

maka, lakukan konfigurasi dengan cara masuk ke file /var/lib/python-support/python2.6/MySQLdb/__init__.py. Copaste aja di bawah ini ke file anda..

"""MySQLdb - A DB API v2.0 compatible interface to MySQL.

This package is a wrapper around _mysql, which mostly implements the
MySQL C API.

connect() -- connects to server

See the C API specification and the MySQL documentation for more info
on other items.

For information on how MySQLdb handles type conversion, see the
MySQLdb.converters module.

"""

__revision__ = """$Revision: 491 $"""[11:-2]
from release import __version__, version_info, __author__

import _mysql

if version_info != _mysql.version_info:
    raise ImportError, "this is MySQLdb version %s, but _mysql is version %r" %\
          (version_info, _mysql.version_info)

threadsafety = 1
apilevel = "2.0"
paramstyle = "format"

from _mysql import *
from MySQLdb.constants import FIELD_TYPE
from MySQLdb.times import Date, Time, Timestamp, \
    DateFromTicks, TimeFromTicks, TimestampFromTicks

from sets import ImmutableSet
ImmutableSet = frozenset
class DBAPISet(ImmutableSet):

    """A special type of set for which A == x is true if A is a
    DBAPISet and x is a member of that set."""

    def __ne__(self, other):
        from sets import BaseSet
	BaseSet = set
        if isinstance(other, BaseSet):
            return super(DBAPISet.self).__ne__(self, other)
        else:
            return other not in self

    def __eq__(self, other):
        from sets import BaseSet
        if isinstance(other, BaseSet):
            return super(DBAPISet, self).__eq__(self, other)
        else:
            return other in self


STRING    = DBAPISet([FIELD_TYPE.ENUM, FIELD_TYPE.STRING,
                     FIELD_TYPE.VAR_STRING])
BINARY    = DBAPISet([FIELD_TYPE.BLOB, FIELD_TYPE.LONG_BLOB,
                     FIELD_TYPE.MEDIUM_BLOB, FIELD_TYPE.TINY_BLOB])
NUMBER    = DBAPISet([FIELD_TYPE.DECIMAL, FIELD_TYPE.DOUBLE, FIELD_TYPE.FLOAT,
                     FIELD_TYPE.INT24, FIELD_TYPE.LONG, FIELD_TYPE.LONGLONG,
                     FIELD_TYPE.TINY, FIELD_TYPE.YEAR])
DATE      = DBAPISet([FIELD_TYPE.DATE, FIELD_TYPE.NEWDATE])
TIME      = DBAPISet([FIELD_TYPE.TIME])
TIMESTAMP = DBAPISet([FIELD_TYPE.TIMESTAMP, FIELD_TYPE.DATETIME])
DATETIME  = TIMESTAMP
ROWID     = DBAPISet()

def Binary(x):
    return str(x)

def Connect(*args, **kwargs):
    """Factory function for connections.Connection."""
    from connections import Connection
    return Connection(*args, **kwargs)

connect = Connection = Connect

__all__ = [ 'BINARY', 'Binary', 'Connect', 'Connection', 'DATE',
    'Date', 'Time', 'Timestamp', 'DateFromTicks', 'TimeFromTicks',
    'TimestampFromTicks', 'DataError', 'DatabaseError', 'Error',
    'FIELD_TYPE', 'IntegrityError', 'InterfaceError', 'InternalError',
    'MySQLError', 'NULL', 'NUMBER', 'NotSupportedError', 'DBAPISet',
    'OperationalError', 'ProgrammingError', 'ROWID', 'STRING', 'TIME',
    'TIMESTAMP', 'Warning', 'apilevel', 'connect', 'connections',
    'constants', 'converters', 'cursors', 'debug', 'escape', 'escape_dict',
    'escape_sequence', 'escape_string', 'get_client_info',
    'paramstyle', 'string_literal', 'threadsafety', 'version_info']

Nah, klo sudah..lakukan import ulang..nanti akan kelihatan seperti dibawah ini.

>>> import MySQLdb
>>> MySQLdb.version_info
(1, 2, 2, 'final', 0)

bisa kan..akhirnya..ok2..

One thought on “MySQLdb dan Python”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s