Jump to content

export mysql function


Recommended Posts

Posted

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

560x95_FFFFFF_FF9900_000000_000000.png
  • Moderators
Posted (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 by Disinterpreter

Developers, Developers, Developers, Developers.... © Steve Balmer

http://www.lua.org/about.html

Quote
Please do not write it as "LUA", which is both ugly and confusing, because then it becomes an acronym with different meanings for different people. So, please, write "Lua" right!
Posted (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 by kir2956
560x95_FFFFFF_FF9900_000000_000000.png
Posted (edited)

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

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

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

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

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

 

Edited by Kernell
  • Like 2

Не оказываю поддержку посредством личных сообщений, ICQ, ВК и тому подобное. Все вопросы задавайте на форуме.

Posted

В lua не давно, изучаю по немногу а exports["mysql"] это как посоветовали.
Спасибо за ответ. понял в чем причина.

560x95_FFFFFF_FF9900_000000_000000.png

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...