En este tutorial vamos a aprender a como crear una conexión con una Base de Datos en MySQL en lenguaje C. Lo primero visiten el siguiente enlace para ver como instalar los paquetes y librerías de MySQL en caso de no tenerlas.
A continuación el código, cada función sera explicada mas abajo:
#include <stdio.h>
#include <mysql/mysql.h>
MYSQL mi_conexion;
MYSQL_RES *res_ptr;
MYSQL_ROW sqlrow;
void ver_celda();
int main(int argc, char *argv[]){
int res;
mysql_init(&mi_conexion);
if(mysql_real_connect(&mi_conexion, "localhost", "usuario","contraseña", "base_de_datos", 0, NULL, 0)){
printf("Conexion exitosa\n");
res = mysql_query(&mi_conexion, "SELECT * FROM tabla");
if(res){
printf("Error en SELECT: %s\n", mysql_error(&mi_conexion));
}
else{
res_ptr = mysql_use_result(&mi_conexion);
if(res_ptr){
while((sqlrow = mysql_fetch_row(res_ptr))){
printf("Obteniendo dato...\n");
ver_celda();
}
}
}
}
}
void ver_celda(){
unsigned int contador;
contador = 0;
while(contador < mysql_field_count(&mi_conexion)){
printf("%s ", sqlrow[contador]);
contador++;
}
printf("\n");
}
- mysql_init(&mi_conexion): Esto inicializa el identificador de conexión MySQL mi_conexion.
- mysql_real_connect: Esto hace la conexión con la base de datos. Los parámetros son auto explicativos, pero por si acaso:
- &mi_conexion: Es el puntero de la conexión para identificar la estructura, que debe estar inicializado con mysql_init.
- “localhost”: Este es el nombre del host o la dirección IP.
- “usuario”: Es el usuario para la conexión de MySQL, generalmente es root, a menos que se haya cambiado.
- “contraseña”: Pues eso, la contraseña para la conexión con MySQL
- “base_de_datos”: Aquí va el nombre de la base de datos. Ejemplo codex
- 0: Este cero corresponde al numero del puerto, debería ser siempre 0 a menos que se haya cambiado.
- NULL: Corresponde al nombre del socket de Unix, también debería ser siempre NULL, a menos que se haya cambiado.
- 0: Corresponde a banderas, debería ser siempre 0 a menos que se haya cambiado.
- mysql_query: Esto toma el puntero de la estructura de la conexión y lo recorre hasta encontrar una cadena de texto SQL valida. Devuelve un cero si ha sido exitosa.
- mysql_error: Proporciona información útil en caso de error.
- mysql_use_result: Recupera los datos entregados por SELECT
- mysql_fetch_row: Recupera la siguiente fila de un conjunto de resultados. Devuelve NULL si no quedan filas por recuperar o si se ha producido un error.
- mysql_field_count: Devuelve el número de columnas para la consulta más reciente de la conexión mysql.
Para compilar este código utilizamos el siguiente comando:
gcc -o ejemplo_mysql -lmysqlclient ejemplo_mysql.c
Para ejecutarlo:
./ejemplo_mysql
Y la correspondiente salida:
Conexion exitosa Obteniendo dato... 1 linux Obteniendo dato... 2 ubuntu Obteniendo dato... 3 mysql


Comentarios recientes