mirror of
https://github.com/luapower/mysql.git
synced 2025-01-01 14:00:27 +01:00
unimportant
This commit is contained in:
parent
27382e197d
commit
4162da7432
@ -1087,13 +1087,13 @@ end
|
|||||||
local stmt = {}
|
local stmt = {}
|
||||||
|
|
||||||
local cursor_types = {
|
local cursor_types = {
|
||||||
no_cursor = 0x00,
|
none = 0x00,
|
||||||
read_only = 0x01,
|
read_only = 0x01,
|
||||||
update = 0x02,
|
update = 0x02,
|
||||||
scrollable = 0x04,
|
scrollable = 0x04,
|
||||||
}
|
}
|
||||||
|
|
||||||
function conn:prepare(query, cursor_type)
|
function conn:prepare(query, opt)
|
||||||
assert(self.state == 'ready')
|
assert(self.state == 'ready')
|
||||||
self.packet_no = -1
|
self.packet_no = -1
|
||||||
local buf = send_buffer(1 + #query)
|
local buf = send_buffer(1 + #query)
|
||||||
@ -1115,7 +1115,7 @@ function conn:prepare(query, cursor_type)
|
|||||||
stmt.warning_count = get_u16(buf)
|
stmt.warning_count = get_u16(buf)
|
||||||
stmt.params = recv_field_packets(self, param_count)
|
stmt.params = recv_field_packets(self, param_count)
|
||||||
stmt.cols = recv_field_packets(self, col_count)
|
stmt.cols = recv_field_packets(self, col_count)
|
||||||
stmt.cursor_type = assert(cursor_types[cursor_type or 'no_cursor'])
|
stmt.cursor = assert(cursor_types[opt and opt.cursor or 'none'])
|
||||||
return stmt
|
return stmt
|
||||||
end
|
end
|
||||||
conn.prepare = protect(conn.prepare)
|
conn.prepare = protect(conn.prepare)
|
||||||
@ -1138,7 +1138,7 @@ function stmt:exec(...)
|
|||||||
local buf = send_buffer(64)
|
local buf = send_buffer(64)
|
||||||
set_u8(buf, COM_STMT_EXECUTE)
|
set_u8(buf, COM_STMT_EXECUTE)
|
||||||
set_u32(buf, stmt.id)
|
set_u32(buf, stmt.id)
|
||||||
set_u8(buf, stmt.cursor_type)
|
set_u8(buf, stmt.cursor)
|
||||||
set_u32(buf, 1) --iteration-count, must be 1
|
set_u32(buf, 1) --iteration-count, must be 1
|
||||||
if #stmt.params > 0 then
|
if #stmt.params > 0 then
|
||||||
local nulls_len = math.floor((#stmt.params + 7) / 8)
|
local nulls_len = math.floor((#stmt.params + 7) / 8)
|
||||||
@ -1215,6 +1215,14 @@ function stmt:exec(...)
|
|||||||
end
|
end
|
||||||
stmt.exec = protect(stmt.exec)
|
stmt.exec = protect(stmt.exec)
|
||||||
|
|
||||||
|
local function pass(self, opt, ok, ...)
|
||||||
|
if not ok then return nil, ... end
|
||||||
|
return self.conn:read_result(opt)
|
||||||
|
end
|
||||||
|
function stmt:query(opt, ...)
|
||||||
|
return pass(self, opt, self:exec(...))
|
||||||
|
end
|
||||||
|
|
||||||
local qmap = {
|
local qmap = {
|
||||||
['\0' ] = '\\0',
|
['\0' ] = '\\0',
|
||||||
['\b' ] = '\\b',
|
['\b' ] = '\\b',
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
## `local mysql = require'mysql_client'`
|
## `local mysql = require'mysql_client'`
|
||||||
|
|
||||||
MySQL client protocol in Lua.
|
MySQL client protocol in Lua.
|
||||||
Stolen from OpenResty and modified to work standalone.
|
Stolen from OpenResty, modified to work with [sock] and added prepared statements.
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
@ -119,9 +119,11 @@ success because this method will only call [read_result](#read_result)
|
|||||||
once for you.
|
once for you.
|
||||||
|
|
||||||
|
|
||||||
### `cn:prepare(query) -> stmt`
|
### `cn:prepare(query, [opt]) -> stmt`
|
||||||
|
|
||||||
Prepare a statement.
|
Prepare a statement. Options can contain:
|
||||||
|
|
||||||
|
* `cursor`: 'read_only', 'update', 'scrollabe', 'none' (default: 'none').
|
||||||
|
|
||||||
### `stmt:exec(params...)`
|
### `stmt:exec(params...)`
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user