|
Здравствуйте, гость ( Вход | Регистрация )
|
![]() ![]()
Сообщение
#1
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
DLL библиотека для работы с базой данных MySQL 5.
Версия lua: 5.1 Версия API: 2 Разрядность ОС: 32 Протестировано на PtokaX 0.4.1.1 Копирайт: Copyright © 2003-2007 Kepler Project LuaSQL is a simple interface from Lua to a DBMS Версия: LuaSQL 2.1.1 В связи с непонятной работой sqlite предлагаю перейти на стабильную и отчасти более функциональную базу данных. Хоть преимуществом sqlite и является работа на локальном компьютере и легкая переносимость, однако весь мир использует mysql и надо отдать должное - mysql великолепен! Теперь о содержимом библиотеки. Я прикладываю rar архив. В нём dll файл libmysql.dll и папка luasql с dll файлом mysql.dll. Обе эти дллелки нужны для работы бд. Распаковываем архив в папку, где лежит файл ptokax.exe (или в папку libs), и ничего никуда не перемещаем. После этого запускаем скрипт для тестирования. Основные функции для работы с mysql в lua
Объект - соединение (conn)
Объект - курсор (cur)
Как работать с таблицами для достижения большей производительности
-------------------- Если у вас нет mysql сервера, то качаем его, например отсюда: Для удобного администрирования там же можно скачать утилиту mysqlgui-win32-static MySQL распространяется под GNU General Public License и под собственной коммерческой лицензией, на выбор. Архив с библиотеками под PtokaX 0.4.*.*: ![]() Скрипт примера работы с MySQL в LUA: ![]() |
|
|
![]() |
![]()
Сообщение
#2
|
|
![]() Главный ра******й тут... ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз ![]() |
Угу, а где архив?
![]() |
|
|
![]()
Сообщение
#3
|
|
![]() Местная ТехПоддержка ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз ![]() |
кстати, Илья (Я к сетаперу) - я так думаю, что тем же способом, что и sqlite, в линукс подрубается mysql! У меня require "luasql.mysql" без ошибок пашет
![]() |
|
|
![]()
Сообщение
#4
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
надо токо пока не получается
|
|
|
![]()
Сообщение
#5
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Простите, забыл приложить архив - исправлено
![]() mariner: я не сомневаюсь в этом. Именно эту самую библиотеку я и скомпилил под винду. Поэтому скрипты можно писать кроссплатформенные. |
|
|
![]()
Сообщение
#6
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
всё таки SQLite в каком то роде предпочтительнее, не все же имеют MySQL сервер....
|
|
|
![]()
Сообщение
#7
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Поверь, "мускул" имеет гораздо большие возможности по сравнения со "скулой". Sqlite многие даже не считают за базу данных)))
Когда-то давно (2 года назад) я писал базы данных под MSSQL и под mysql и не знал, что существует какой-то там sqlite, потому как он не очень широко распространён среди программистов, которые пишут большие и стабильные программы на базе взаимодействия клиент-сервер. Неужели так сложно поставить мускул? Инструкцию по установки что ли накатать? |
|
|
![]()
Сообщение
#8
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
думаю их полно в инете. Хотелось бы увидеть несколько скриптов с открытым кодом работающих с базой данных! Например простенький топ сообщений! Накидаешь Илюх?
![]() |
|
|
![]()
Сообщение
#9
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Постараюсь в ближайшее время что-то подобного рода изобразить
![]() |
|
|
![]()
Сообщение
#10
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
Тестовый скрипт удачно запущен совместно с Денвером! Единственное базу пришлось создавать ручками.
PS: есть ли сайты повещённые взаимодействию MySQL и Lua? |
|
|
![]()
Сообщение
#11
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Базу естественно надо создавать вручную, а потом только к ней коннектиться. Для создания базы лучше всего использовать утилиту mysqlgui-win32-static (см. первый пост).
Всё что нужно знать по взаимодействию mysql и lua написано в первом посте. |
|
|
![]()
Сообщение
#12
|
|
![]() Самый главный активист :-D ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз ![]() |
|
|
|
![]()
Сообщение
#13
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Хм... странно из-за чего бы это ей не работать?
В общем базу можно создать многими способами, хоть через командную строку)))) |
|
|
![]()
Сообщение
#14
|
|
![]() Местная ТехПоддержка ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз ![]() |
да, командная строка наше фсио ) (я думаю ты уже догадался, что я console user) PS я готов выложить обновленные пакеты
![]() |
|
|
![]()
Сообщение
#15
|
|
![]() Местный ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз ![]() |
При выборке данных из таблицы числовые значения возвращаются как строки. Так и должно быть, или я что-то не так делаю?
|
|
|
![]()
Сообщение
#16
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
да. Преобразование в нужные типы нужно делать самому, я об этом писал в первом посту (читай "Метод извлечения результатов")
|
|
|
![]() ![]()
Сообщение
#17
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Свистопляска с кодировками MySQL
Начиная с версии 4.1 появилась возможность устанавливать кодировку на уровне сервера, базы данных, таблицы, столбца. Также появились переменные, которые определяют кодировку клиента (character_set_client), соединения (character_set_connection) и результата (character_set_results). Например, когда вы добавляете данные в таблицу, MySQL проверяет кодировку клиента (вы можете посмотреть ее, проверив значение переменной character_set_client) и использует ее для определения того, в какой кодировке вы передаете серверу данные. Переменная character_set_connection используется для определения кодировки для литералов, у которых она не определена и при преобразовании числа в строку. Это значит, что если у вас данные в кодировке cp1251, то для корректной передачи данных необходимо чтобы character_set_client и character_set_connection были установлены в cp1251. Во все три выше перечисленные параметры можно установить кодировку одним запросом к MySQL: Код SET NAMES cp1251 Это эквивалентно трём следующим командам:Код SET character_set_client=cp1251 SET character_set_connection=cp1251 SET character_set_results=cp1251 Однако, этой всей свистопляски можно и не делать если установить кодировки по умолчанию. Кодировки по умолчанию устанавливаются в файле my.ini, который находится в директории установленного вами мускула. В данном файле, в соответствующих "разделах", дописывается следующее: Код [client] default-character-set=cp1251 character-sets-dir="C:/MySQL/share/charsets/" Код [mysql] default-character-set=cp1251 Код [mysqld] default-character-set=cp1251 default-collation=cp1251_general_ci character-sets-dir="C:/MySQL/share/charsets/" init-connect='SET NAMES cp1251' Внимание! Прописанная настройка init-connect, позволяет не прописывать каждый раз при коннекте к базе данных команду "SET NAMES cp1251", о которой говорилось выше, НО эта настройка не будет выполняться для пользователей, у которых есть привилегия SUPER. Команда для просмотра кодировок: Код SHOW VARIABLES LIKE 'char%'; Использование: Код require"luasql.mysql" local env = assert(luasql.mysql()) local con = assert(env:connect("название_бд", "пользователь", "пароль_пользователя", "localhost")) local cur = assert(con:execute"SHOW VARIABLES LIKE 'char%'") local row = cur:fetch({}, "n") while row do Core.SendToAll(string.format("Variable_name: %s, Value: %s", row[1], row[2])) row = cur:fetch(row, "n") end cur:close() con:close() env:close() И последнее... При создании базы данных нужно также указывать кодировку создаваемой базы: Код CREATE DATABASE IF NOT EXISTS `my_dc_base` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci; Соблюдая все вышеизложенные факты, корректная работа базы данных обеспечена! |
|
|
![]()
Сообщение
#18
|
|
![]() Освоившийся участник ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 314 Регистрация: 13.10.2008 Пользователь №: 791 Спасибо сказали: 9 раз ![]() |
если у кого нить есть исходники птоки то можно переписать код чтобы она сразу работала с БД и не с хмл файлами. а в настройках просто добавить ещё 4 опции: адрес, имя пользователя, пароль, префикс таблиц...
|
|
|
![]()
Сообщение
#19
|
|
![]() Местный ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз ![]() |
если у кого нить есть исходники птоки то можно переписать код чтобы она сразу работала с БД и не с хмл файлами. а в настройках просто добавить ещё 4 опции: адрес, имя пользователя, пароль, префикс таблиц... Исходники есть у PPK. Но он скорее всего пошлёт тебя если попросишь.Если хорошо постараться, то можно и без исходников прикрутить к птоке MySQL. |
|
|
![]()
Сообщение
#20
|
|
![]() Освоившийся участник ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 314 Регистрация: 13.10.2008 Пользователь №: 791 Спасибо сказали: 9 раз ![]() |
и будет обычная птока только с плагином мускуля...
может кто нить напишет PPK что бы вышла птока которая не только как сервис, но как сервис с самостоятельным доступом к БД. а не через(пусть и хорошо написанный) плагин. |
|
|
![]() ![]() |
Похожие темы
![]() |
Сейчас: 8.9.2024, 3:15 |