Un ejemplo sencillo conectándonos a una base de datos.
#include
//agregamos la cabecera de mysql
#include
//definimos una macro
#ifdef __linux__
#define clrscr system("clear");
#else
#define clrscr system("cls");
#endif
int main(int argc, char *argv[])
{
clrscr;
//declaramos los objetos
//conexión, que será nuestro enlace
//abierto con la base de datos
MYSQL *conn;
//conjunto de resultados (o recordset),
//donde volcaremos los resultados de las
//consultas que realicemos
MYSQL_RES *res;
//fila, para poder trabajar de forma
//individual con los registros obtenidos de una consulta.
MYSQL_ROW row;
//definimos las variables que utilizaremos
//en las llamdas a los métodos
char *server="localhost";
char *user="miusuario";
char *password="micontraseña";
char *database=argv[1]; //aqui utilizamos el primer
//parámetro obtenido desde la linea de comando,
//nos aseguramos de que conn no esta enlazando a nada
conn = mysql_init(NULL);
//realizamos la conexión y comprobamos
//que no se hayan producido errores
if (!mysql_real_connect(conn,server,user,password,database,0,NULL,0))
{
fprintf(stderr,"%s\n",mysql_error(conn));
return 1;
}
//asignamos una consulta a la conexión
//y comprobamos que no se hayan producido errores
if (mysql_query(conn, argv[2]))
{
fprintf(stderr,"%s\n",mysql_error(conn));
return 1;
}
//volcamos el resultado de la consulta en el recordset
res = mysql_use_result(conn);
printf("Resultado de la consulta: \n");
/*Recorremos el recordset:
con mysql_fetch_row, avanzamos uno a uno
los registros del recordset y volcamos la salida
en el row, Cuando no quedan más registros devuelve NULL.
El row es un array que contiene los campos de la consulta.
*/
while ((row = mysql_fetch_row(res)) != NULL)
{
printf("%s - %s \n", row[0],row[1]);
}
//liberamos el recordset.
mysql_free_result(res);
//cerramos la conexión al servidor mysql
mysql_close(conn);
return 0;
}
Requisitos antes de compilar.
Información obtenida aquí:
http://www.cyberciti.biz/tips/linux-unix-connect-mysql-c-api-program.html
No hay comentarios:
Publicar un comentario