#include #include #include // std::cout #include "/usr/include/mysql/mysql.h" MYSQL* con; // connection MYSQL_RES* query_results; // result set MYSQL_STMT* stmt; // prepared statement int main() { unsigned long real_length = 0; int rc, e; std::string msg; char buf[100]; MYSQL_BIND bind[2]; con = mysql_init(NULL); if (mysql_real_connect(con, "localhost", "danny", "danny13", "test", 0, "/run/mysql/mysql.sock", 0) == NULL) {printf("bad connection\n"); return 1;} std::string q = "SELECT `data` FROM `test`.`Temp` WHERE NOT ISNULL(data);"; bind[0].buffer= 0; bind[0].buffer_length= 0; bind[0].length= &real_length; stmt = mysql_stmt_init(con); {e = mysql_errno(con); msg = mysql_error(con);} if (mysql_stmt_prepare(stmt, q.c_str(), q.length())) {e = mysql_errno(con); msg = mysql_error(con);} if (mysql_stmt_execute(stmt)) {e = mysql_errno(con); msg = mysql_error(con);} while (!(rc = mysql_stmt_fetch(stmt))) { if (mysql_stmt_bind_result(stmt, bind)) {e = mysql_errno(con); msg = mysql_error(con);} if (real_length > 0) // is never set to field length { char* data= (char*) malloc(real_length); bind[0].buffer= data; bind[0].buffer_length= real_length; mysql_stmt_fetch_column(stmt, bind, 0, 0); } } if (rc == 1) {e = mysql_errno(con); msg = mysql_error(con);} }