2014-12-04 2 views
0
#include <mysql.h> 
#include <stdio.h> 

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

    char *server = "localhost"; 
    char *user = "root"; 
    char *password = ""; // set me first 
    char *database = "VirtualSoc"; 
    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)); 
    exit(1); 
    } 

    /* send SQL query */ 
    if (mysql_query(conn, "show tables")) { 
    fprintf(stderr, "%s\n", mysql_error(conn)); 
    exit(1); 
    } 
    res = mysql_use_result(conn); 

    /* output table name */ 
    printf("MySQL Tables in mysql database:\n"); 
    while ((row = mysql_fetch_row(res)) != NULL) 
    printf("%s \n", row[0]); 

    /* close connection */ 
    mysql_free_result(res); 
    mysql_close(conn); 
} 

Это код целиком. Я пытаюсь подключиться к базе данных под Linux.Подключение к MySQL с клиентом XAMPP в C

Как скомпилировать это?
Почему я получаю сообщение об ошибке mysql.h doesn't exist?
Нужно ли использовать что-то вроде libmysqlclient-dev или libmariadbclient-dev использовать mysql.h?

Я не хочу использовать их, я просто хочу подключиться к моему серверу XAMPP как localhost на своей машине. Как я могу это сделать? И еще один вопрос: зачем мне компилировать мой код?

$ GCC -o выходного файла $ (mysql_config --cflags) MySQL-с-api.c $ (mysql_config --libs)

+0

Для начала , попробуйте отформатировать код, чтобы он был действительно читабельным. Отступы и интервалы не имеют значения для компилятора, но это * важно для людей. –

+0

Чтобы прояснить некоторые вещи: у вас нет отдельной службы XAMPP, XAMPP является * распределением * нескольких сервисов, в том числе службой базы данных (MySQL). –

ответ

0

Нет, я нашел ответ, и для тех, кто хочет использовать C, чтобы поговорить с сервера (MySQL) из XAMPP вам нужно включать#include "/opt/lampp/include/mysql.h" (это заголовок) и у вас есть в папке/include все функции , макросы, определенные для соединения и выполнения запроса в течение всего дня. Спасибо за ответы, но вы меня не уговорили, и вы дадите мне очень неправильные ответы за то, что я искал. Надеюсь, я позабочусь о других людях, которые хотят сделать то же самое.

И я узнал, что независимо от того, какой сервис, что клиент, которого вы хотите общаются все подавляющее большинство принадлежит и осуществляется с orcle технологии, и вам необходимо установить sudo apt-get install libmysqlclient-dev и компиляции с

gcc -o example example.c `mysql_config --cflags --libs` 
+0

Вы должны принять свой ответ, чтобы пометить вопрос как решенный. – fenceop

0

Ваш компилятор не может найти mysql.h в системный include путь. Чтобы исправить это, вы должны использовать -I<path_to_header> вместе с gcc.

IMO, рекомендуется использовать " " вместо <> с заявлением #include в вашем случае.

+0

Чтобы добавить к ответу: добавление правильных путей include/library - это одна вещь, которую команда 'mysql_config' должна выполнять в командной строке OPs. –

Смежные вопросы