/*******************************************\
| * Ce programme est sous liscence GNU GPL  * |
| * This software is under GNU/GPL licence  * |
| * * * * * * * * * * * * * * * * * * * * * * |
| * http://www.gnu.org/copyleft/gpl.html    * |
 \*******************************************/

/* Cr er par Laurent Coustet <ed@zehome.com>
 * http://ed.zehome.com/                    
 * Made by Laurent Coustet <ed@zehome.com>
 */

#define _GNU_SOURCE

#include <mysql/mysql.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mysql.h"
#include "debug.h"


void _mysql_connect (MYSQL *_mysql, char *_sql_user, char *_sql_host, char *_sql_password, char *_sql_database)
{
  mysql_init(_mysql);
/*  mysql_options(_mysql,MYSQL_READ_DEFAULT_GROUP,"edsite"); 
 *  This segfault mysql 3.23.49
 */

  if (!mysql_real_connect(_mysql,_sql_host,_sql_user,_sql_password,_sql_database,0,NULL,0))
    {
      printf("ERROR: Failed database connection. MySQLerror: %s\n", mysql_error(_mysql));
      return;
    }
  MESSAGE("MySQL connection success, user: %s, host: %s, password *****, database: %s\n",_sql_user,_sql_host,_sql_database);
  return;
}

void _mysql_disconnect (MYSQL *_mysql)
{
  mysql_close(_mysql);
  MESSAGE("Connection MySQL closed.\n");
  return;
}

int _mysql_query(MYSQL *_mysql,char *query,...)
{
  char *tmp=NULL;
  va_list ap;
  va_start(ap, query);
  vasprintf(&tmp, query, ap);
  va_end(ap);
  free(ap);
  if (mysql_query(_mysql, tmp) !=0 )
  {
    printf("Impossible d'executer la requete %s\n", tmp);
    return -1;
  }
  else
   VERBOSE("Requete effectuée avec succès: %s\n", tmp);

  free(tmp);
  return 0;
}