Auf MySQL Datenbank zugreifen



  • Hi zusammen,

    ich habe bei mir eine MySQL Datenbank laufen auf die ich gerne mit C zugreifen würde. Allerdings weiß ich nichtmal wo ich anfangen muss. Kann mir jemand ei paar Tipps zum Einstieg geben?

    Miki



  • geht...klar

    #include <time.h>
    #include <stdio.h>
    #include <mysql.h>
    
    int main ()  {
        MYSQL_RES *mTabelle;
        MYSQL_ROW mRecord;
        MYSQL *mConnection, mDB;
        int mError;
        mysql_init(&mDB);
        mConnection =
    mysql_real_connect(&mDB,"localhost","root","","test",0,0,0);
        if (mConnection == NULL)  {
            printf("Es konnte keine Verbindung zur Datenbank hergestellt werden: %s",mysql_error(&mDB));
            return 1;
        } else {
     printf("Es wurde erfolgreich eine Verbindung hergestellt!");
        }
        mysql_close(mConnection);
        return 0;
    }
    

    [edit]für Unix angepasst (windows.h entfernt)[/edit]



  • Hi,

    ich schreibe auch viel in C für MySQL. elise's Beispiel ist schon toll, aber hier noch ein grundlegende Tips:

    - die Entwicklungsdateien sind mysql.h, libmysql.lib, libmysql.dll (unter Windows, Linux heißen sie glaube ich genauso, nur das die .dll eine .so ist und die .lib eine .a). Unter Win32 muß man die windows.h noch dabei haben.

    - in der MySQL-Dokumentation ist unter dem Kapitel MySQLClient Tools und APIs eine Referenz der Funktionen. Für C++ kannst du dir unter www.mysql.com eine offizielle Klassenbibliothek zur MySQL-Programmierung herunterladen.

    - die eigentliche Programmierung ist recht simpel (s. Beispiel elise: Verbindung aufbauen, SQL Statement abschicken, Ergebnis auswerten. Da kommt man in der Regel mit einer handvoll Funktionen aus.

    Gruß

    GunJahLion



  • Also ich würde da so lösen.

    MYSQL_ROW fetchbuffer;
        MYSQL *conn;
        MYSQL_RES *result;
    
        conn = mysql_init(NULL);
    
        if (conn == NULL) return DB_CONNECTION_BAD;
        if (mysql_real_connect(conn,maschine,user,password,database,port,NULL,0) == NULL)
        {
            return DB_CONNECTION_BAD;
        }   
    result = NULL;
    connected = true;
    return DB_CONNECTION_OK;
    
    int Database::sqlexecute(CString sqlcommando)
    {
        if (mysql_query(conn, sqlcommando))
        {
            CString errormessage = errorMessage();
            return DB_COMMAND_ERROR;
        }
    
        if (!(result = mysql_store_result(conn)))
        {
            /*  Statement executed */
            return DB_COMMAND_OK;
        }
    
        if (!(fetchbuffer = mysql_fetch_row(result)))
        {
            /*  Keine Daten vorhanden */
            return DB_EMPTY_QUERY;
        }
    
        for (unsigned int colNum = 0; colNum <= nrFields(); colNum++)
        {
            field[colNum] = fetchbuffer[colNum];
        }
    
        return DB_SELECT_OK;
    }
    



  • Guten Abend,

    wollte mich mal informieren, wie das ganze aufgebaut wird. Was soll in der Header Datei drin stehen und was soll in der c++ - Datei stehen, damit sich das Programm mit meiner Datenbank verbindet.

    Wäre über Tipps und Tutorials dankbar..

    Grüße
    Der neue im Forum... 😃


  • Global Moderator

    Wird doch alles hier im Thread beantwortet. Wenn du konkrete Fragen hast, stell sie. Mit einer guten Frage. Und kram dafür keine 13 Jahre alten Threads hervor, ohne etwas wichtiges zum Thema beitragen zu können! Das ist extrem störend und deswegen wird dieser Thread hier auch prompt eingeschläfert.


Gesperrt