tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
28
ZUGRIFFE
356
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Hallo, ich hab folgendes Problem:

    Ich möchte gerne mit meiner CGI-Anwendung eine Verbindung zu MySQL erstellen, doch ich bekomme immer nur einen Serverfehler. Was mache ich falsch?

    Hier mein Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <mysql.h>
     
    int main(void){
        printf("Content-Type: text/html\n\n");
        MYSQL *mysql = mysql_init(NULL);
        if(mysql == NULL) {
          printf("Fehler bei mysql_init()******\n");
          return EXIT_FAILURE;
        }
        if(mysql_real_connect(mysql, NULL, NULL, NULL, NULL, 0, NULL, 0) == NULL) {
          printf("Fehler bei mysql_real_connect()******\n");
          return EXIT_FAILURE;
        } else
          printf("Verbunden******\n");
        
        return EXIT_SUCCESS;
    }


    Ich hoffe mir kann jemand helfen Schonmal danke im vorraus

    Gruß yax
     

  2. #2
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Welchen Serverfehler bekommst du denn?
     

  3. #3
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    Serverfehler!
     
    Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist.
     
    Fehlermeldung:
    Premature end of script headers: verbindenTest.cgi
     
    Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
    Error 500

     

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Hi

    welchen Fehler?
    Funktioniert es, wenn nur irgendwas wie "Hallo Welt" ausgegeben wird?
    Die MYSQL-Verbindung sollte auch wieder geschlossen werden.

    edit: zwei Beiträge verpasst?
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  5. #5
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Was mir an dem Skript auffällt ist, das nirgendwo eine Serveradresse, oder ein Benutzername für den MySQL-Server angegeben ist.

    Sonst würde ich vorschlagen du kommentierst Blockweise Code aus, bis der Fehler nicht mehr kommt. Dann sehen wir mal wo der Fehler auftritt.
     

  6. #6
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Also, wenn ich HalloWelt ausgeben will, funktioniert es. Und wenn ich die Verbindung am Ende wieder schließe, ändert dies auch nichts.

    Was meinst du mit zwei Beiträge verpasst?
     

  7. #7
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Ich habe gerade mall alles bisauf die ersten 2 anweisungen in main() auskommentiert, und dies funktioniert schon nicht. Also denke ich, dass nicht auf die Funktionen Zugegriffen werden kann...
     

  8. #8
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Hallo,

    Dann nimm jetzt bitte mal den if (mysql_real_connect... Block raus, und versuchs dann.

    Was meinst du mit zwei Beiträge verpasst?
    Nur das er beim Posten zu langsam war.

    Edit: Diesmal war ich zu langsam.

    Edit2: Wenn du nur die erste Zeile drin hast gehts?
     

  9. #9
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Wenn ich dieses Programm als cgi-Anwendung aufrufe, dann bekomme ich wieder den gleichen Fehler...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <mysql.h>
     
    int main(void){
        printf("Content-Type: text/html\n\n");
        MYSQL *mysql = mysql_init(NULL);
        if(mysql == NULL) {
          printf("Fehler bei mysql_init()******\n");
          return EXIT_FAILURE;
        }
        /*if(mysql_real_connect(mysql, NULL, NULL, NULL, NULL, 0, NULL, 0) == NULL) {
          printf("Fehler bei mysql_real_connect()******\n");
          return EXIT_FAILURE;
        } else
          printf("Verbunden******\n");
        */
        mysql_close(mysql);
        return EXIT_SUCCESS;
    }
     

  10. #10
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Wenn ich nur printf(..); dirn habe, funktioniert alles super
     

  11. #11
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    In welcher Form hast du das Mysqlzeug? Statische/Dynamische Lib?
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  12. #12
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Was? Kannst du mir das genauer erklären ?
     

  13. #13
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Anders: Hast du für die MySQL-Funktionen in C irgendwo was heruntergeladen?
    Link?
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  14. #14
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Also, ich habe mir den MySQL Server runtergeladen und dann installiert. Dann habe ich, da ich Dev C++ verwende, mir noch die libmysql.a und libmysql.dll runtergeladen. Den Link habe ich leider nicht mehr Wenn ich ein normales MySQL-Programm programmiere und es dann starten will, muss die libmysql.dll in dem gleichen Ordner liegen, damit ich das Programm ausführen kann.

    Hat das damit etwas zu tun?
     

  15. #15
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    libmysql.a und .dll
    Das wollte ich wissen, Link überflüssig.

    Und ja, das mit dem gleichen Ordner wäre mein nächster Vorschlag gewesen

    Wenn du schon so fragst, hast du die DLL derzeit also nicht drin?
    Rein damit.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 07.08.09, 22:12
  2. Antworten: 3
    Letzter Beitrag: 29.11.08, 20:08
  3. MySQL: ERROR 2013 (HY000): Lost connection to MySQL server during query
    Von blumshuett im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 07.06.06, 23:23
  4. mysql: mysql-server: mysql.sock fehlt (Suse 9.1)
    Von zappoth im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 08.05.06, 18:06
  5. Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
    Von strandjunge im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 19.01.05, 15:33