GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
mariadb_stmt_execute_direct(3) MariaDB Connector/C mariadb_stmt_execute_direct(3)

mariadb_stmt_execute_direct - prepares and executes a prepared statement


#include <mysql.h>
int mariadb_stmt_execute_direct(MYSQL_STMT * stmt,
                                const char *query,
                                size_t length);

    

Prepares and executes a statement which was previously allocated by mysql_stmt_init(3), using the current values of the parameter variables if any parameters exist in the statement.

stmt - A statement handle, which was previously allocated by mysql_stmt_init(3).
query SQL statement
length Length of SQL statement

Returns zero on success, non-zero on failure.

Since the number of parameter of the statement is unknown before execution it is mandatory to set the number of parameters via the mysql_stmt_attr_set(3) function.
If the SQL statement is a zero-terminated string, you can also pass -1 as length.
The statement handle is intended for one-time execution. Reusing the statement handle might lead to unexpected behavior.

This function was added in Connector/C 3.0 and requires MariaDB 10.2 or later versions.

mysql_stmt_attr_set(3)
mysql_stmt_bind_param(3)

```C static int execute_direct_example(MYSQL mysql) { MYSQL_STMT stmt= mysql_stmt_init(mysql); MYSQL_BIND bind[2]; int intval= 1; int param_count= 2; char *strval= “execute_direct_example”;

/* Direct execution without parameters */ if (mariadb_stmt_execute_direct(stmt, “CREATE TABLE execute_direct (a int, b varchar(30))”, -1)) goto error;

memset(&bind, 0, sizeof(MYSQL_BIND) * 2); bind[0].buffer_type= MYSQL_TYPE_SHORT; bind[0].buffer= &intval; bind[1].buffer_type= MYSQL_TYPE_STRING; bind[1].buffer= strval; bind[1].buffer_length= strlen(strval);

/* set number of parameters */ if (mysql_stmt_attr_set(stmt, STMT_ATTR_PREBIND_PARAMS, &param_count)) goto error;

/* bind parameters */ if (mysql_stmt_bind_param(stmt, bind)) goto error;

if (mariadb_stmt_execute_direct(stmt, “INSERT INTO execute_direct VALUES (?,?)”, -1)) goto error;

mysql_stmt_close(stmt); return 0; error: printf(“Error: %s”, mysql_stmt_error(stmt)); mysql_stmt_close(stmt); return 1; }

Version 3.2.2

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.