// ------------------------------------------------------------------------- //
// Exemple de connexion à MySQL via l'API C                                  //
// ------------------------------------------------------------------------- //
// Compilation :                                                             //
//   cc -I/usr/include/mysql -lmysqlclient mysql-apic.c -o mysql-apic        //
// ------------------------------------------------------------------------- //
// Auteur: J-Pierre DEZELUS                                                  //
// Web:   http://www.phpinfo.net/                                            //
// Email: jpdezelus@phpinfo.net                                              //
// ------------------------------------------------------------------------- //

#include <stdio.h>
#include <mysql.h>

#define CFG_HOTE "mon_hote"
#define CFG_BASE "ma_base"
#define CFG_USER "mon_user"
#define CFG_PWD  "mon_password"

int main(int argc, char *argv[]) {
  
  MYSQL       mysql;
  MYSQL_RES * resultat;
  MYSQL_ROW   enr;
  
  char sql[250];

  printf("Connexion en cours ...\n");

  if (!mysql_connect(&mysql, CFG_HOTE, CFG_USER, CFG_PWD)) {
    printf("Connexion impossible !\n");
    return(1);
  }
  
  printf("Connecté.\n");
  
  printf("Sélection de la base ...\n");

  if (mysql_select_db(&mysql, CFG_BASE)) {
    printf("Accès à la base impossible !\n");
    return(1);
  }
  printf("Base sélectionnée.\n");

  strcpy(sql, "SELECT * ");
  strcat(sql, "FROM ma_table ");
  strcat(sql, "WHERE code > 0 ");
  strcat(sql, "ORDER BY code");

  mysql_query(&mysql, sql);

  if (!(resultat = mysql_use_result(&mysql))) {
    printf("Exécution de la requête impossible !\n");
    return(1);
  }

  while ((enr = mysql_fetch_row(resultat))) {
    printf("%s %s %s\n", enr[0], enr[1], enr[2]);
  }
  
  mysql_free_result(resultat);

  printf("Deconnexion en cours ...\n");
  mysql_close(&mysql);
  printf("Déconnecté.\n");

  return(0);

}