MySQL- Руководство разработчика



              

Глава 5.1.5 MySQLmodule


MySQLmodule, старый интерфейс MySQL, разработанный Joe Skinner, является также интерфейсом C/Python. MySQL, C-часть, имеет интерфейс, подобный perl DBI. Кроме того, имеется часть Python, Mysqldb, которая обеспечивает интерфейс DB API v1.0, написанный James Henstridge. MySQLdb-0.2.2 и выше включает CompatMysqldb, который является адаптацией Mysqldb к _mysql. Это должно рассмотреться экспериментальным решением.

Напротив, C-часть MySQLdb, _mysql, разработана в соответствии с MySQL C API объектно-ориентированным способом. MySQLdb обеспечивает интерфейс DB API v2.0, который имеет некоторые отличия от v1.0, в частности такие изменения:

Действие Mysqldb MySQLdb
Соединение db=Mysqldb.Mysqldb("db@host user pass") db=MySQLdb.connect(db='db', host='host', user='user', passwd='pass')
Неявный курсор db.execute(SQL) Неявные курсоры удалены из DB API v2.0. Всегда используйте c=db.cursor()
Строка выборок как словарь c.fetchDict(), ключи: "table.column" Не стандарт: альтернативный класс DictCursor предоставляет интерфейс словаря, ключи являются "column" или "table.column , если имеются два столбца с одним именем. Используйте SQL-оператор AS для переименования полей.
Транзакции db.commit() и db.rollback() мирно сосуществуют вместе и тихо не делают ничего (опасно!) db.commit() и db.rollback() работают, если сервер MySQL может выполнять транзакции, иначе db.rollback() всегда терпит неудачу.




Содержание  Назад  Вперед