Search code examples
mysqlcdatabase-connectionsql-insert

How to connect and insert record to mysql using c language?


Can I connect to MySQL with the C language? And if connection is possible, how do I insert records into the MySQL database? Please give me a simple and small example.


Solution

  • You will need to use the MySQL C Connector which your can find on their website: https://dev.mysql.com/downloads/connector/c/

    Concerning your request regarding the example, a simple research would have helped you: Mysql INSERT statement in C

    Nothing beats the manual though: https://dev.mysql.com/doc/refman/5.7/en/c-api-function-overview.html

    EDIT:

    Here is a simple example:

    sql.c:

    #include <stdio.h>                                                                                   
    #include <stdlib.h>                                                                                  
    #include <mysql/mysql.h>                                                                             
    
    int main(void)                                                                                       
    {                                                                                                    
      MYSQL *conn;                                                                                       
    
      if ((conn = mysql_init(NULL)) == NULL)                                                             
      {                                                                                                  
        fprintf(stderr, "Could not init DB\n");                                                 
        return EXIT_FAILURE;                                                                             
      }                                                                                                  
      if (mysql_real_connect(conn, "localhost", "user", "passwd", "dbname", 0, NULL, 0) == NULL)             
      {                                                                                                  
        fprintf(stderr, "DB Connection Error\n");                                                        
        return EXIT_FAILURE;                                                                             
      }                                                                                                  
      if (mysql_query(conn, "INSERT INTO table_1 (test) VALUES ('Hello World')") != 0)                   
      {                                                                                                  
        fprintf(stderr, "Query Failure\n");                                                              
        return EXIT_FAILURE;                                                                             
      }                                                                                                  
      mysql_close(conn);                                                                                 
      return EXIT_SUCCESS;                                                                               
    }
    

    gcc sql.c -o sql -lmysqlclient