#include #include MYSQL *mysql; void die(int res) { if (res) { printf("error (%d): %s\n", mysql_errno(mysql), mysql_error(mysql)); exit(1); } } int main() { int err; MYSQL_STMT *stmt; MYSQL_BIND bind[1]; char data[6] = {'a','a','a','a','a','a'}; unsigned long length; my_bool error; mysql = mysql_init(NULL); err = (mysql_real_connect(mysql, "localhost", "root", "", "test", 0, NULL, 0) == NULL); die(err); stmt = mysql_stmt_init(mysql); die(mysql_stmt_prepare(stmt, "SELECT hello FROM test_table", strlen("SELECT hello FROM test_table"))); memset(&bind, 0, sizeof(bind)); bind[0].buffer_type = MYSQL_TYPE_STRING; bind[0].buffer = data; bind[0].length = &length; bind[0].buffer_length = 5; bind[0].error = &error; die(mysql_stmt_execute(stmt)); die(mysql_stmt_bind_result(stmt, bind)); die(mysql_stmt_store_result(stmt)); die(mysql_stmt_fetch(stmt)); printf("Actual length: %d (error: %d) ([6]=%02X)\n", length, error, (unsigned char)data[5]); mysql_stmt_close(stmt); mysql_close(mysql); }