El API de C para MySQL
El API de MySQL para C se distribuye con MySQL. Está incluído en la biblioteca mysqlclient que permite a los programas en C acceder a una base de datos.
Tipos de Datos
El API de C desarrolla tipos especiales para manejar los diferentes datos que se pueden obtener. Los tipos más importantes son:
MYSQL: Esta estructura representa el manejador de la conexión a la base de datos. Es utilizado en la mayoría de las funciones de MySQL.
MYSQL_RES: Esta estructura representa el resultado de un query que regresa renglones (SELECT, SHOW, DESCRIBE, EXPLAIN). Com˙nmente, al resultado de un query se le llama "result set".
MYSQL_ROW: Este tipo de datos es el utilizado para obtener un solo renglón como resultado de un query. Los renglones pueden ser obtenidos llamando a la función mysql_fetch_row().
MYSQL_FIELD: Esta estructura contiene información acerca del campo obtenido, tal y como su nombre, tipo y tamaÒo. Los campos de una tabla se pueden obtener mandando llamar a la función mysql_fetch_field(). Los valores de los campos no son parte de esta estructura sino que se encuentran en la estructura MYSQL_ROW.
Funciones
Dentro de todas las funciones que forman parte del API, las funciones más comúnmente utilizadas son las siguientes:
mysql_init: Inicializa la estructura de tipo MYSQL.
mysql_real_connect: Se utiliza para conectarse al servidor de bases de datos.
mysql_select_db: Selecciona una base de datos.
mysql_real_query: Ejecuta un query determinado.
mysql_store_result: Obtiene un result set resultante de la ejecución de un query.
mysql_fetch_row: Obtiene el renglón de un result set.
mysql_fetch_field: Regresa un arreglo con los campos resultantes de un query.
mysql_num_fields: Obtiene el n˙mero de columnas en un result set.
mysql_close: Cierra la conexión con el servidor.
mysql_error: Regresa el mensaje de error de la ˙ltima función de MySQL que haya sido ejecutada.
mysql_free_result: Libera la memoria utilizada por un result set.
Compilación
Para la compilación de un programa que utilice el API de MySQL en UNIX, se deberán incluir las siguientes bibliotecas:
-
socket
-
nsl
-
m
-
z
-
mysqlclient
y los siguientes archivos de inclusión:
Un ejemplo de un makefile de un programa compuesto de tres módulos y que utilice el API de MySQL sería el siguiente:
programa.out: modulo1.o modulo2.o modulo3.o
gcc -o progrma.out modulo1.o modulo2.o modulo3.o -lsocket -lnsl -lm -lz -lmysqlclient
modulo1.o: modulo1.c
gcc -c modulo1.c
modulo2.o: modulo2.c
gcc -c modulo2.c
modulo3.o: modulo3.c
gcc -c modulo3.c