UCL Information Services Division


Calling MySQL from C

MySQL databases may be used by programs written in the C programming language on Socrates and Plato and on the IS Solaris workstations. Full details of the C API (Application Program Interface) are given in the MySQL manual.

The following example program (in file prog.c) should be compiled with this Unix command:

cc -I/usr/local/include/mysql prog.c -lmysqlclient -lsocket -lnsl -lm -lz

This program displays the second and third fields (numbered 1 and 2) of each row of table people in database ucabwww where field age is greater than 30:

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

int main() {
   MYSQL *conn;
   MYSQL_RES *res;
   MYSQL_ROW row;

   char *server = "mysql-server.ucl.ac.uk";
   char *user = "ucabwww";
   char *password = "secret";
   char *database = "ucabwww";
   conn = mysql_init(NULL);
   /* Connect to database */
   if (!mysql_real_connect(conn, server,
         user, password, database, 0, NULL, 0)) {
      fprintf(stderr, "%s\n", mysql_error(conn));

   /* send SQL query */
   if (mysql_query(conn, "SELECT * FROM people WHERE age > 30")) {
      fprintf(stderr, "%s\n", mysql_error(conn));

   res = mysql_use_result(conn);
   /* output fields 1 and 2 of each row */
   while ((row = mysql_fetch_row(res)) != NULL)
      printf("%s %s\n", row[1], row[2]);

   /* Release memory used to store results and close connection */