Авторизация
Задай мне вопрос
Голосования
| how to lua and mysql, или как работать с БД в lua |
|
| Written by xternalx | |||
| Monday, 19 April 2010 19:57 | |||
|
Привет, просматривая отчеты гугл аналитикс заметил что на мой сайт некоторые люди приходят в поисках ответов на вопрос, как из lua работать с БД mysql, и прочими БД. Да, lua позволяет работать с mysql, причем, предоставляет удобный интерфейс для взаимодействия с БД. Для начала работы с БД необходимо скачать библиотеку luasql(если вы windows юзер), или установить из репозиториев liblua5.1-sql-2 Теперь для того чтобы начать общаться с БД подключаем эту библиотеку в своем скрипте. В этом примере мы будем работать с mysql: Сохранили скрипт, пробуем выполнить. Если ошибок не возникло - значит все хорошо, вы правильно установили расширение luasql ;) Далее для того чтобы подключиться к БД, нужно сначала создать окружение БД. Не обращайте внимание на эту сумбурность, проще говоря, нам нужно в lua инициализировать драйвер для работы с БД: Все, теперь у нас есть есть окружение БД mysql. Далее создаем подключение к БД: Проверяем переменную con. Если она равна nil, значит где то произошла ошибка. При этом в переменной err будет присвоено сообщение с текстом ошибки. Если ошибки не произошло - работаем дальше ;) допустим, нам нужно удалить все записи из таблицы tablename в которых uid записи =1. После выполнения этого запроса переменной result будет присвоено значение, соответствующее количеству удаленных записей. То есть, обычно число. Обращаю ваше внимание, что результатом запроса всегда будет число в тех случаях, когда вы выполняете команды типа INSERT, UPDATE, DELETE, DROP, и т.п. Теперь давайте выберем из БД и выведем на экран все записи, у которых uid = 2. В результате этого запроса переменной result будет присвоен так называемый курсор, при помощи которого можно оперировать с данными, которые возвратил запрос. Давайте выведем на экран результат запроса: Повторный вызов fetch в теле цикла необходим для предотвращения зацикливания, т.е. можно сказать, что fetch - это итератор. Вот в общем то и все, не забудьте уничтожать созданные подключения и окружения вызовом метода close()
|
|||
| Last Updated on Monday, 26 April 2010 12:18 |

