kir2956 Posted October 20, 2016 Share 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, что делать? Link to comment
Other Languages Moderators Disinterpreter Posted October 21, 2016 Other Languages Moderators Share 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 Link to comment
kir2956 Posted October 21, 2016 Author Share 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 Link to comment
Kernell Posted October 21, 2016 Share Posted October 21, 2016 (edited) Вы вообще понимаете, что в вызове connection вы каждый раз создаёте НОВОЕ подключение к БД? А что происходит со старым - не ясно. Во-вторых, оператор двоеточия служит только для вызова функций (для скрытой передачи первого аргумента), использование : без () это синтаксическая ошибка в Lua. В третьих, что делает у вас local db:exports["mysql"]? Чего вы от неё ожидаете? Проблема не в MySQL и не в экспортах. Проблема в банальном незнании даже основ Lua. Чем не устраивает просто использование exports.mysql:connection()? Edited October 21, 2016 by Kernell 2 Link to comment
kir2956 Posted October 21, 2016 Author Share Posted October 21, 2016 В lua не давно, изучаю по немногу а exports["mysql"] это как посоветовали. Спасибо за ответ. понял в чем причина. Link to comment
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