Jump to content

export mysql function


Recommended Posts

Всем привет, хочу использовать базу данных 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
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 by Disinterpreter
Link to comment

У меня 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 by kir2956
Link to comment

Вы вообще понимаете, что в вызове connection вы каждый раз создаёте НОВОЕ подключение к БД? А что происходит со старым - не ясно.

Во-вторых, оператор двоеточия служит только для вызова функций (для скрытой передачи первого аргумента), использование : без () это синтаксическая ошибка в Lua.

В третьих, что делает у вас local db:exports["mysql"]? Чего вы от неё ожидаете?

Проблема не в MySQL и не в экспортах. Проблема в банальном незнании даже основ Lua.

Чем не устраивает просто использование exports.mysql:connection()?

 

Edited by Kernell
  • Like 2
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...