COM_STMT_EXECUTE
You are viewing an old version of this article. View
the current version here.
Executes a previously prepared statement.
If specific data is large, it can be sent separately prior to this command (see COM_STMT_SEND_LONG_DATA).
If a statement is re-executed without changing the bind types, the types do not need to be sent to the server again.
Direction
Client to server.
Fields
- int<1> 0x17 : COM_STMT_EXECUTE header
- int<4> statement id
- int<1> flags:
- int<4> Iteration count (always 1)
- if (param_count > 0)
- byte<(param_count + 7)/8> null bitmap
- byte<1>: send type to server (0 / 1)
- if (send type to server)
- for each parameter :
- byte<1>: field type
- byte<1>: parameter flag
- for each parameter :
- for each parameter (i.e param_count times)
- byte<n> binary parameter value
Statement Id
Since MariaDB server version 10.2, can be -1 (or, 0xFFFFFFFF), indicating execution of the last statement prepared on current connection.
Flag
0 | no cursor |
1 | read only |
2 | cursor for update |
4 | scrollable cursor |
Parameter flag
parameter type flag byte:
128 | unsigned |
NULL-Bitmap
The NULL-Bitmap indicates if parameters are null (one bit per parameter).
NULL-bitmap size is (parameter number + 7) / 8
COM_STMT_EXECUTE response
The server can answer with 3 different responses:
- 0xff: ERR_Packet if any errors occur.
- 0x00: OK_packet when query execution works without resultset.
- one (or more) Resultset, when query execution return rows (in case of SELECT query for example).
Comments
Comments loading...
Content reproduced on this site is the property of its respective owners,
and this content is not reviewed in advance by MariaDB. The views, information and opinions
expressed by this content do not necessarily represent those of MariaDB or any other party.