#include #include #include #include #include void test ( MYSQL * mysql ) { MYSQL_STMT * statement; int error; my_bool update_max_length; MYSQL_RES * meta_datas; int nb_fields; update_max_length = 1; // #define QUERY_STRING "select v_bigint from `all_types`" // #define QUERY_STRING "select v_varchar from `all_types`" // #define QUERY_STRING "select v_bit from `all_types`" // #define QUERY_STRING "select v_longtext from `all_types`" // #define QUERY_STRING "select v_longblob from `all_types`" #define QUERY_STRING "select v_numeric from `all_types`" fprintf ( stderr, "Testing query: '%s'\n", QUERY_STRING ); fprintf ( stderr, "mysql_stmt_init...\n" ); if ( ( statement = mysql_stmt_init ( mysql ) ) == NULL ) { fprintf ( stderr, "Cannot allocate sql statement\n" ); exit(-1); } fprintf ( stderr, "mysql_stmt_prepare...\n" ); if ( error = mysql_stmt_prepare ( statement, QUERY_STRING, strlen ( QUERY_STRING ) ) ) { fprintf ( stderr, "Error executing mysql_stmt_prepare\n" ); exit (1); } fprintf ( stderr, "mysql_stmt_attr_set...\n" ); mysql_stmt_attr_set ( statement, STMT_ATTR_UPDATE_MAX_LENGTH, &update_max_length ); fprintf ( stderr, "mysql_stmt_execute...\n" ); if ( error = mysql_stmt_execute ( statement ) ) { fprintf ( stderr, "Error executing mysql_stmt_execute\n" ); exit(-1); } fprintf ( stderr, "mysql_stmt_store_result...\n" ); if ( error = mysql_stmt_store_result ( statement ) ) { fprintf ( stderr, "Error executing mysql_stmt_store_result\n" ); exit(-1); } fprintf ( stderr, "mysql_stmt_result_metadata...\n" ); if ( ! ( meta_datas = mysql_stmt_result_metadata ( statement )) ) { fprintf ( stderr, "Error executing mysql_stmt_result_metadata\n" ); exit(-1); } nb_fields = mysql_num_fields ( meta_datas ); fprintf ( stderr, "Testing query: DONE\n" ); } void setup_connection ( MYSQL * conn ) { static char set_names[] = "set names utf8"; int error; int nb_errors; nb_errors = 0; if ( error = mysql_real_query ( conn, set_names, strlen ( set_names )) ) { fprintf ( stderr, "Error set names\n" ); exit (-1); } } int main ( int argc, char ** argv ) { char host[] = DB_STRING ("localhost"); char user[] = DB_STRING ("root"); char password[] = DB_STRING ("dnjpad"); char database[] = DB_STRING ("db_types"); int port = 0; char * unix_socket = NULL; unsigned long connection_flags = 0; MYSQL conn; mysql_init (&conn); mysql_options (&conn, MYSQL_READ_DEFAULT_GROUP, "db_types"); if ( !mysql_real_connect(&conn, host, user, password, database, port, unix_socket, connection_flags) ) { fprintf(stderr, "Failed to connect to database '%s': Error: %s\n", database, mysql_error(&conn)); exit (1); } setup_connection (&conn ); fprintf(stderr, "Successfully connected to database\n"); test ( &conn ); return( 0); }