Sends the given statement to the database server associated to handle by odbx_init() for execution. The
statement can contain non-displayable characters as arguments in conditions but they have to be escaped
via odbx_escape() before adding them to the statement. Even more, every argument whose source is not con‐
trolled by the programmer must be escaped first to avoid SQL injection attacks to avoid serious harm!
After invoking odbx_query(), one or more result sets will be sent back by the server and are available
via odbx_result(). Before these sets aren't processed by calling odbx_row_fetch(), no other queries can
be sent to the database server. Otherwise, odbx_query() will return a backend error from the native data‐
base library.
The first parameter handle is the connection object created and returned by odbx_init() which becomes in‐
valid as soon as it was supplied to odbx_finish().
The statement stored in the stmt parameter must be a valid statement understood by the receiving database
server and it should be terminated by a \0 character. Some backends support multiple statements per
query, which can be tested by calling odbx_get_option().
The length parameter must contain the length of the statement in bytes without the terminating \0 charac‐
ter. If variable sized character sets like UTF-8 are used, the same rule applies. This function doesn't
support the wide character type (wchar_t) which uses two or four bytes per character. If you feed 0 (ze‐
ro) as length parameter to the function, it will calculate the size of the statement on its own.