#include "mysql.h" #include #define USER NULL #define PASSWORD NULL #define DB "test" /* This assumes the following was created in the test database: CREATE TABLE foo ( bar VARCHAR(100) ); INSERT INTO foo VALUES ('12345678901234567890123456789012345678901234567890'); */ main() { MYSQL_STMT *stmt; MYSQL_BIND binds[1]; MYSQL *mysql; char *sql_stmt = "SELECT bar FROM foo"; char buffer[20]; unsigned long length; my_bool error; int rc; mysql = mysql_init(NULL); if (!mysql_real_connect(mysql, NULL, USER, PASSWORD, DB, 0, NULL, 0)) { printf("Failed to connect.\n"); exit(1); } stmt = mysql_stmt_init(mysql); if(!stmt) { printf("Failed to init.\n"); exit(1); } if (mysql_stmt_prepare(stmt, sql_stmt, strlen(sql_stmt))) { printf("Failed to prepare.\n"); exit(1); } memset(binds, 0, sizeof(binds)); binds[0].buffer_type = MYSQL_TYPE_VAR_STRING; binds[0].buffer = buffer; binds[0].buffer_length = sizeof(buffer); binds[0].length = &length; binds[0].error = &error; if (mysql_stmt_bind_result(stmt, binds)) { printf("Failed to bind result.\n"); exit(1); } if (mysql_stmt_execute(stmt)) { printf("Failed to execute.\n"); exit(1); } rc = mysql_stmt_fetch(stmt); printf("%i\n", rc); if (rc == 1 || rc == MYSQL_NO_DATA) { printf("Failed to fetch.\n"); exit(1); } printf("length=%i error=%i\n", length, error); }