Автор: Setuper 12.1.2010, 17:10
Название: mysql
Версия библиотеки: 2.1.1
Хаб: RusHub
Версия БД: 5.0
Описание: Библиотека для подключения базы данных mysql
Использование: Содержимое архива mysql_2.1.1.rar распаковываем в папку libs. Подключается библиотека так: require"luasql.mysql".
Примечание: Если не работает, то попробуйте библиотеку libmysql.dll закинуть в корень (папку с rushub.exe) или же в system32 (syswow64 для x64).
Библиотека win32:
mysql_2.1.1.rar ( 498.2 килобайт )
: 299
Библиотека win64:
mysql_2.1.1_win64.rar ( 757.76 килобайт )
: 133
Проект для сборки на vs2008:
mysql_2.1.1_src_vs9.zip ( 146.39 килобайт )
: 38
Скрипт примера работы с MySQL в LUA:
mysql_test.lua ( 1.63 килобайт )
: 169
Основные функции для работы
Основные функции для работы с mysql в luaКод
luasql._COPYRIGHT = "Copyright (C) 2003-2007 Kepler Project"
luasql._DESCRIPTION = "LuaSQL is a simple interface from Lua to a DBMS"
luasql._VERSION = "LuaSQL 2.1.1"
luasql._MYSQLVERSION = "5.0.18"
- Подключение драйвера (библиотеки):
Код
require"luasql.mysql"
- Инициализация драйвера (библиотеки):
Код
env = luasql.mysql()
- Деинициализация драйвера (библиотеки):
Код
env:close()
Возвращает true в случае успешного закрытия, false в случае, если закрытие уже было сделано до этого, и порождает ошибку скрипта: "LuaSQL: environment expected", если в метод был подсунут неверный объект.
Объект - соединение (conn)- Метод вызова соединения с базой данных:
Код
conn = env:connect([имя_базы], [имя_пользователя], [пароль], [хост], [порт])
Обязательным является только первый параметр, остальные параметры в случае отсутствия берутся по умолчанию: [имя_пользователя] = "root", [пароль] = "", [хост] = "localhost", [порт] = 3306.
В случае нехватки памяти возвращается nil и сообщение об ошибке: "LuaSQL: Error connecting: Out of memory."
В случае неудачного коннекта к базе данных возвращается nil и сообщение об ошибке: "LuaSQL: Error connecting to database. MySQL: [reason]"
- Метод закрытия соединения с базой данных:
Код
conn:close()
Закрытие может быть успешным только в случае если все курсоры закрыты. Возвращает true в случае успешного закрытия, false в случае, если закрытие уже было сделано до этого, и порождает ошибку скрипта: "LuaSQL: connection expected", если в метод был подсунут неверный объект.
- Метод выполнения SQL запроса к базе данных:
Код
conn:execute("запрос")
В случае правильности запроса, для запросов типа SELECT возвращает курсор, для остальных запросов возвращает число столбцов или строк, успешно обработанных запросом. В случае неверного синтаксиса, или несуществующих таблиц, или несуществующих полей, или прочих ошибок возвращается два значения: первое - nil, второе - сообщение с содержанием ошибки.
- Метод выполнения (завершения, совершения) текущей транзакции:
Код
conn:commit()
Возвращает true в случае успеха, false - в случае, когда транзакция не может быть завершина или база данных не поддерживает транзакции (поддержка транзакции в mysql осуществляется с версии 4.0).
- Метод отката на предыдущую транзакцию:
Код
conn:rollback()
Возвращает true в случае успеха, false - в случае, когда операция не может быть выполнена или база данных не поддерживает транзакции (поддержка транзакции в mysql осуществляется с версии 4.0).
- Метод включения/отключения автоматических транзакций:
Код
conn:setautocommit(boolean)
Эта функция не может работать на базах, на которых не осуществляются транзакции. На базах данных, на которых нет понятия режима автоматических транзакций, этот механизм осуществляется драйвером. Метод возвращает true в случае успеха, и false - в случае невыполнимости или неосуществимости (поддержка транзакции в mysql осуществляется с версии 4.0).
Объект - курсор (cur)
Автор: CrazyKiller 20.5.2011, 11:45
Падает Скрипт сразу при запуске, пишет ошибку что не найдена Библиотека !
в Логе error loading module 'luasql.mysql' from file 'd:\2\libs\luasql\mysql.dll':
Не найден указанный модуль.
Пути правильные, другие библиотеки работают отлично, проверял с разными скриптами которые требуют Библиотеку MYSQL, в чём может быть проблема ?
Разобрался, заработал когда кинул в корень папки !
Думаю нужна исправить
Автор: ShadoWx 2.8.2011, 8:50
ребят, хоть убейте для меня билиотеки темный лес просидел все ночь то с сокетами, то с mysql ....
хотел установить скрипт сетапера - antisearch ... в итоге
Код
[Tue Aug 2 09:51:42 2011] /home/shadowx/rushub_bin/scripts/Antisearch.lua:113: module 'luasql.mysql' not found:
no field package.preload['luasql.mysql']
no file '/home/shadowx/rushub_bin/libs/luasql/mysql.lua'
no file '/home/shadowx/rushub_bin/libs/luasql/mysql/init.lua'
no file '/home/shadowx/rushub_bin/luasql/mysql.lua'
no file '/home/shadowx/rushub_bin/luasql/mysql/init.lua'
no file '/home/shadowx/rushub_bin/scripts/luasql/mysql.lua'
no file '/home/shadowx/rushub_bin/scripts/luasql/mysql/init.lua'
no file '/home/shadowx/rushub_bin/scripts/libs/luasql/mysql.lua'
no file '/home/shadowx/rushub_bin/scripts/libs/luasql/mysql/init.lua'
no file './luasql/mysql.lua'
no file '/usr/local/share/lua/5.1/luasql/mysql.lua'
no file '/usr/local/share/lua/5.1/luasql/mysql/init.lua'
no file '/usr/local/lib/lua/5.1/luasql/mysql.lua'
no file '/usr/local/lib/lua/5.1/luasql/mysql/init.lua'
no file '/usr/share/lua/5.1/luasql/mysql.lua'
no file '/usr/share/lua/5.1/luasql/mysql/init.lua'
no file '/home/shadowx/rushub_bin/libs/luasql/mysql.so'
no file '/home/shadowx/rushub_bin/luasql/mysql.so'
no file '/home/shadowx/rushub_bin/scripts/luasql/mysql.so'
no file '/home/shadowx/rushub_bin/scripts/libs/luasql/mysql.so'
no file './luasql/mysql.so'
no file '/usr/local/lib/lua/5.1/luasql/mysql.so'
no file '/usr/lib/lua/5.1/luasql/mysql.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file '/home/shadowx/rushub_bin/libs/luasql.so'
no file '/home/shadowx/rushub_bin/luasql.so'
no file '/home/shadowx/rushub_bin/scripts/luasql.so'
no file '/home/shadowx/rushub_bin/scripts/libs/luasql.so'
no file './luasql.so'
no file '/usr/local/lib/lua/5.1/luasql.so'
no file '/usr/lib/lua/5.1/luasql.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
я понимаю что такая ошибка возникает из за не установленной либы ...
пожалуйста поясните как ее собирать ...от А до Я ..включая изменения в мейк файлах .....
Автор: Saymon21 2.8.2011, 14:52
Ведь рассказал всё вчера и кинул изменённое :(
nano /lua-sql-2.2.0~rc1/debian/mysql.Makefile.Debian.conf
Код
### mandatory fields
PKG_NAME=sql.mysql
### things relative to the C library part
CLIB_CFLAGS=$(shell mysql_config --cflags)
CLIB_LDFLAGS=$(shell mysql_config --libs) -llua5.1
CLIB_OBJS=src/luasql.lo src/ls_mysql.lo
VERSION_INFO=2:0:0
### things relative to the lua library part
LUA_HEADER=
LUA_SOURCES=
LUA_MODNAME=luasql.mysql
#LUA_TEST=tests/test.lua mysql database user password
### this part is relative to pkg-config
PKG_VERSION=$(shell dpkg-parsechangelog|grep ^Ver|cut -d ' ' -f 2|cut -d '-' -f 1)
PKG_LIBS_PRIVATE=
PKG_URL=
PKG_REQUIRES=
PKG_CONFLICTS=
### this part is relative to debian libs naming policy
DEB_EXTRA_DASH=-
Код
dpkg-buildpackage -rfakeroot
Автор: arktik 19.12.2011, 10:33
После обновления хаба на версию 2.3.7, а луа плагина 2.6, перестал работать модуль мускула. Вот что пишет в lua_errors.log:
Код
[Mon Dec 19 17:36:15 2011] error loading module 'luasql.mysql' from file '/usr/lib/lua/5.1/luasql/mysql.so':
/usr/lib/lua/5.1/luasql/mysql.so: undefined symbol: lua_getfield
В чем может быть проблема?
Автор: Setuper 19.12.2011, 11:44
На лицо проблемы с lua. Нужно смотреть как mysql либа линкуется с lua, и как линкуется rushub при сборке.
Проверить к одной и той же версии lua они линкуются.
Попробуй пересобрать mysql либу
Автор: arktik 20.12.2011, 8:18
Спасибо. Проблема решена.
Нужно было скомпилировать модуль mysql с особыми параметрами.
Вот config файл, который я изменил:
Код
# $Id: config,v 1.10 2008/05/30 17:21:18 tomas Exp $
# Driver (leave uncommented ONLY the line with the name of the driver)
T= mysql
#T= oci8
#T= odbc
#T= postgres
#T= sqlite
#T=sqlite3
#T=firebird
# Installation directories
# Default prefix
PREFIX = /usr
# System's libraries directory (where binary libraries are installed)
LUA_LIBDIR= $(PREFIX)/lib/lua/5.1
# System's lua directory (where Lua libraries are installed)
LUA_DIR= $(PREFIX)/share/lua/5.1
# Lua includes directory
LUA_INC= $(PREFIX)/include/lua5.1
# LUA_INC= mysql/
# Lua version number (first and second digits of target version)
LUA_VERSION_NUM= 501
# OS dependent
# Здесь надо добавить параметр -llua
LIB_OPTION= -shared -llua
#LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X
LIBNAME= $T.so
COMPAT_DIR= ../compat/src
# Compilation parameters
# Driver specific
######## MySQL
DRIVER_LIBS= -L/usr/lib/mysql/ -lmysqlclient -lz
DRIVER_INCS= -I/usr/include/mysql
######## Oracle OCI8
#DRIVER_LIBS= -L/home/oracle/OraHome1/lib -lz -lclntsh
#DRIVER_INCS= -I/home/oracle/OraHome1/rdbms/demo -I/home/oracle/OraHome1/rdbms/public
######## PostgreSQL
#DRIVER_LIBS= -L/usr/local/pgsql/lib -lpq
#DRIVER_INCS= -I/usr/local/pgsql/include/
######## SQLite
#DRIVER_LIBS= -lsqlite
#DRIVER_INCS=
######## SQLite3
#DRIVER_LIBS= -L/opt/local/lib -lsqlite3
#DRIVER_INCS= -I/opt/local/include
######## ODBC
#DRIVER_LIBS= -L/usr/local/lib -lodbc
#DRIVER_INCS= -DUNIXODBC -I/usr/local/include
######## Firebird
#DRIVER_LIBS= -L/usr/local/firebird -lfbclient
#DRIVER_INCS=
WARN= -Wall -Wmissing-prototypes -Wmissing-declarations -ansi -pedantic
INCS= -I$(LUA_INC)
# И здесь добавить -fPIC
CFLAGS= -fPIC -O2 $(WARN) -I$(COMPAT_DIR) $(DRIVER_INCS) $(INCS) -DLUASQL_VERSION_NUMBER='"$V"' $(DEFS)
CC= gcc
# $Id: config,v 1.10 2008/05/30 17:21:18 tomas Exp $
Автор: mariner 20.12.2011, 12:24
эм, ну и зачем тут это? То же самое, что и в 4ом сообщении темы.
Автор: shadow3c 18.8.2014, 4:05
Помогите пожалуйста у меня похожая проблема
http://mydc.ru/topic5661.html