X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=blobdiff_plain;f=src%2FmysqlConn.c;h=b82d317cc4a5770ffd6a3c8af6812bd9e8ec6ecc;hp=dfc65a9f042742bc1c5013380b5de71f0834c300;hb=b013fcf166b6b84f7b946412dacfe84ba5cfe6b6;hpb=ff6c5041af889bbc986199316daba8676b8e9cfd diff --git a/src/mysqlConn.c b/src/mysqlConn.c index dfc65a9..b82d317 100644 --- a/src/mysqlConn.c +++ b/src/mysqlConn.c @@ -1,5 +1,5 @@ -/* mysqlConn.c - NeonServ v5.1 - * Copyright (C) 2011 Philipp Kreil (pk910) +/* mysqlConn.c - NeonServ v5.3 + * Copyright (C) 2011-2012 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ */ #include "mysqlConn.h" -#define DATABASE_VERSION "4" +#define DATABASE_VERSION "14" struct used_result { MYSQL_RES *result; @@ -132,6 +132,10 @@ void init_mysql(char *host, int port, char *user, char *pass, char *base) { } fclose(f); } + do { + MYSQL_RES *res = mysql_store_result(mysql_conn); + mysql_free_result(res); + } while(!mysql_next_result(mysql_conn)); mysql_set_server_option(mysql_conn, MYSQL_OPTION_MULTI_STATEMENTS_OFF); mysql_query(mysql_conn, "INSERT INTO `version` (`database_version`) VALUES ('" DATABASE_VERSION "')"); } @@ -151,7 +155,7 @@ void init_mysql(char *host, int port, char *user, char *pass, char *base) { mysql_query(mysql_conn, query_buffer); query_buffer_pos = 0; } - } else if(!stricmp(query_buffer, line)) { + } else if(!stricmplen(query_buffer, line, strlen(query_buffer))) { use_querys = 1; } } @@ -162,6 +166,10 @@ void init_mysql(char *host, int port, char *user, char *pass, char *base) { fclose(f); } else perror("database.sql missing!"); + do { + MYSQL_RES *res = mysql_store_result(mysql_conn); + mysql_free_result(res); + } while(!mysql_next_result(mysql_conn)); mysql_set_server_option(mysql_conn, MYSQL_OPTION_MULTI_STATEMENTS_OFF); mysql_query(mysql_conn, "UPDATE `version` SET `database_version` = '" DATABASE_VERSION "'"); } @@ -195,6 +203,25 @@ void printf_mysql_query(const char *text, ...) { } } +void printf_long_mysql_query(int len, const char *text, ...) { + va_list arg_list; + char queryBuf[len]; + int pos; + queryBuf[0] = '\0'; + va_start(arg_list, text); + pos = vsnprintf(queryBuf, len - 2, text, arg_list); + va_end(arg_list); + if (pos < 0 || pos > (len - 2)) pos = len - 2; + queryBuf[pos] = '\0'; + printf("MySQL: %s\n", queryBuf); + if(mysql_query(mysql_conn, queryBuf)) { + check_mysql(); + if(mysql_query(mysql_conn, queryBuf)) { + show_mysql_error(); + } + } +} + char* escape_string(const char *str) { struct escaped_string *escapedstr = malloc(sizeof(*escapedstr)); if (!escapedstr) {