Selbstprogrammierte Passwortabfrage verbindet sich nicht mit SQL-Server



  • Guten Abend,

    folgender Sachverhalt:

    Ich wollte ein kleines Programm schreiben, welches mich zu meinem SQL-Server verbindet.
    Das Passwort meines Root-Logins möchte ich dabei Testweise in dem Programm eingeben.
    Leider klappt aber scheinbar bei der Verarbeitung des Strings etwas nicht und er kann nicht connecten (ja, Passwort wurde richtig eingegeben:) )

    hier nun der Quelltext:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <mysql/mysql.h>
    #define MAX 20
    
    int new_entry() {
    
        int counter=0;
        char password[MAX];
    
        fgets(password, MAX, stdin);
    
        for(counter=0; password[counter] != '\0'; counter++)
            if(password[counter] == '\n') {
                password[counter] == '\0';
                break;
            }
        MYSQL *mysql;
        mysql = mysql_init(NULL);
        if( !mysql_real_connect(    mysql,
                                    "localhost",
                                    "root",
                                    password,
                                    "Telefon_Karten",
                                    0,
                                    NULL,
                                    0)) {
            fprintf(stderr, "Du hasts verkackt");
            return EXIT_FAILURE;
        }
        else {
            printf("hasts geschafft");
        }
        mysql_close(mysql);
        return EXIT_SUCCESS;
    }
    
    int read_entry() {}
    int main(void)
    {
        char eingabe[2];
    
        printf( "\t\tTelefon-Karten\n"
                "\t-1- Neuer Eintrag\n"
                "\t-2- Eintrag auslesen\n"
                "\t-3- Programm Beenden\n");
        printf("Auswahl : ");
        do{ fgets(eingabe, 2, stdin); } while( getchar() != '\n');
    
        switch(eingabe[0]) {
            case '1' :    new_entry();
                          break;
            case '2' :    read_entry();
                          break;
            case '3' :    printf("byebye\n");
                          return EXIT_SUCCESS;
                          break;
            default  :    fprintf(stderr, "falsche Eingabe\n");
                          return EXIT_FAILURE;
                          break;
        }
        return EXIT_SUCCESS;
    }
    

    vielen Dank schonmal 🙂



  • password[counter] == '\0';
    

    das ist in dem kontext falsch, du willst dem char ja etwas zuweisen

    richtig wäre

    password[counter] = '\0';
    

    grüße, b52


Anmelden zum Antworten