'ude af stand til at inkludere mysql.h' i C-programmet

Indlæg af Hanne Mølgaard Plasc

Problem




   Mulig duplikat:

  Hvordan man laver #include < mysql.h > arbejde?





Jeg skal forbinde C og mysql


Dette er mit program


#include <stdio.h>
#include <mysql.h>
#define host "localhost"
#define username "root"
#define password "viswa"
#define database "dbase"
MYSQL *conn;

int main()
{

     MYSQL\_RES *res\_set;
     MYSQL\_ROW row;

     conn = mysql\_init(NULL);

    if( conn == NULL )
     {                                               `
        printf("Failed to initate MySQL
");
        return 1;
    }


    if( ! mysql\_real\_connect(conn,host,username,password,database,0,NULL,0) )
    {
        printf( "Error connecting to database: \%s
", mysql\_error(conn));
        return 1;
    }

    unsigned int i;


    mysql\_query(conn,"SELECT name, email, password FROM users");


    res\_set = mysql\_store\_result(conn);


    unsigned int numrows = mysql\_num\_rows(res\_set);
    unsigned int num\_fields = mysql\_num\_fields(res\_set);



    while ((row = mysql\_fetch\_row(res\_set)) != NULL)
    {

        for(i = 0; i < num\_fields; i++)
        {
             printf("\%s	", row[i] ? row[i] : "NULL");
        }
        printf("
");

    }


    mysql\_close(conn);
    return 0;

}


Jeg fik fejlen 'ude af stand til at inkludere mysql.h'.


Jeg bruger Windows 7, Turbo C, mysql og jeg downloadede mysql-connector-c-noinstall-6.0.2-win32-vs2005, men jeg ved ikke hvordan man skal medtage den.

Bedste reference


Forkert syntaks. #include er et C preprocessor-direktiv, ikke en erklæring (det skal ikke ende med et halvt kolon). Du skal bruge [19]


#include <mysql.h>


og du har måske brug for i stedet for at have


#include <mysql/mysql.h>


eller at videregive -I /some/dir muligheder til din compiler (med /some/dir erstattet af mappen, der indeholder overskriften mysql.h.


Ligeledes skal din #define sandsynligvis ikke afsluttes med et halvt kolon, du kan få brug for


#define username "root"
#define password "viswa"
#define database "dbase"


Jeg anbefaler stærkt at læse en god bog om C-programmering. Du vil muligvis undersøge den forarbejdede form for din kildekode; Når du bruger gcc, kan du påberåbe det som gcc -C -E yoursource.c for at få den forarbejdede formular.


Jeg anbefaler også stærkt at aktivere advarsler og fejlsøgningsoplysninger (fx gcc -Wall -g til GCC). Find ud af, hvordan din specifikke kompilator skal bruges. Lær også hvordan du bruger din debugger (f.eks. gdb). Undersøg også eksisterende C-programmer (især fri software).


Du skal lære at konfigurere din compiler til at bruge ekstra inklusiv mapper og at linke ekstra biblioteker.


N. B. Med en Linux-distribution skal du bare installere de relevante pakker og måske bruge mysql\_config i vores Makefile (selvfølgelig skal du have brug for passende compiler og linker-flag), måske med linjer som


CFLAGS += -g -Wall $(shell  mysql\_config --cflags)
LIBES += $(shell mysql\_config --libs)


tilføjet til din Makefile.