kir2956 Posted October 20, 2016 Posted October 20, 2016 Всем привет, хочу использовать базу данных mysql но никак не получается правильно экспортировать ее. Вот функция экспортируемой функции function connection() local handler = mysql_connect("ip", "user", "pass", "database") return handler end А вот где я ее получаю local account = mysql_query(exports["mysql"]:connection(), "SELECT * FROM users WHERE serial = '".. serial .."';") ошибка что функция не может найти mysqlHandler, что делать?
Other Languages Moderators Disinterpreter Posted October 21, 2016 Other Languages Moderators Posted October 21, 2016 (edited) 7 hours ago, kir2956 said: Всем привет, хочу использовать базу данных mysql но никак не получается правильно экспортировать ее. Вот функция экспортируемой функции function connection()local handler = mysql_connect("ip", "user", "pass", "database")return handlerend А вот где я ее получаю local account = mysql_query(exports["mysql"]:connection(), "SELECT * FROM users WHERE serial = '".. serial .."';") ошибка что функция не может найти mysqlHandler, что делать? Для начала откуда экспортировать? Во вторых RTFM mysql_query( MySQLConnection handler, string query ) Если что-то делаете некорректно, проверьте, отдаете ли вы данную функцию на экспорт. Так ли называется ресурс? И так далее... Edited October 21, 2016 by Disinterpreter
kir2956 Posted October 21, 2016 Author Posted October 21, 2016 (edited) У меня 2 скрипта (mysql, login) В mysql meta.xml и server.lua В server.lua заложено это: function connection() local handler = mysql_connect("ip", "user", "pass", "database") return handler end В meta.xml я передаю эту функцию так.. <export function="connection" type="server" /> А в самом скрипте login уже пытаюсь получить таким способом.. local db:exports["mysql"] local account = mysql_query(db:connection(), "SELECT * FROM users WHERE serial = '".. serial .."';") Вроде как нужно, может кто что найдет что я не так делаю, никак не могу понять. Ошибка:bad argument #1 to 'mysql_query' (mysqlHandler expected, got userdata) P.S Если поменять название экспортируемой функции mysql_query(db:***connection()***, "SELECT * FROM users WHERE serial = '".. serial .."';") Тогда сервер выдаст ошибку что функция не найдена, таким образом я понимаю что скрипт получает экспорт но функция mysql_query не получает mysqlHandler. Edited October 21, 2016 by kir2956
Kernell Posted October 21, 2016 Posted October 21, 2016 (edited) Вы вообще понимаете, что в вызове connection вы каждый раз создаёте НОВОЕ подключение к БД? А что происходит со старым - не ясно. Во-вторых, оператор двоеточия служит только для вызова функций (для скрытой передачи первого аргумента), использование : без () это синтаксическая ошибка в Lua. В третьих, что делает у вас local db:exports["mysql"]? Чего вы от неё ожидаете? Проблема не в MySQL и не в экспортах. Проблема в банальном незнании даже основ Lua. Чем не устраивает просто использование exports.mysql:connection()? Edited October 21, 2016 by Kernell 2
kir2956 Posted October 21, 2016 Author Posted October 21, 2016 В lua не давно, изучаю по немногу а exports["mysql"] это как посоветовали. Спасибо за ответ. понял в чем причина.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now