tutorials.de Buch-Aktion 05/2012
Seite 2 von 2 ErsteErste 12
ERLEDIGT
JA
ANTWORTEN
28
ZUGRIFFE
356
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #16
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    die DLL habe ich schon drin
     

  2. #17
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Kann es denn sein, dass ich die Datei irgendwie mit einbinden muss?
     

  3. #18
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Das sollte der Compiler erledigen.
    Man kann eine DLL zwar auch während der Laufzeit laden, ist aber vergleichsweise umständlich.
    Wenn du schon mit der Lib kompilierst sollte das reichen.

    Hmm...vllt. zwingt der Server sein Arbeitsverzeichnis rein...

    Lass einmal das MYSQL-Zeug im Code weg (die DLL aber im Ordner lassen).

    Dafür mit fopen versuchen, die DLL zu öffnen.
    Wenn OK, irgendein printf, dass es funktioniert hat und wieder fclose.
    Sonst eben ein anderes printf, dass es nicht funktioniert hat.

    edit: Sowas statt dem MySQL-Code:
    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    FILE *dat;
    dat = fopen("libmysql.dll", "rb");
    if(dat)
    {
        printf("OK");
        fclose(dat);
    }
    else
        printf("Nein");
     
    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, ...?

  4. #19
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Ja, also ich hab die Datei ja nicht extra genannt, oder sowas, sie ist ja nur im selbem Ordner. Reicht das trotzdem?

    So, und wenn ich die Datei öffne, klappt es auch

    Also ich habe jetzt den Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <mysql.h>
     
    int main(void){
        printf("Content-Type: text/html\n\n");
        FILE *fp = fopen("libmysql.dll", "r");
        if(fp == NULL)
          printf("Konnte Datei nicht öffnen!\n");
        else {
          printf("Datei libmysql.dll geöffnet!\n");
          fclose(fp);
        }
        
        return EXIT_SUCCESS;
    }
     

  5. #20
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Zum Einbinden: Ja, auch das mit dem Namen erledigt der Compiler.

    Zum Code: Du solltest dir wirklich angewöhnen, offene Sachen wieder zu schließen.

    Zum Problem: Derzeit keine Ideen mehr.
    Hast du mal in die Logfiles vom Server geschaut?
     
    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, ...?

  6. #21
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Ja, ich weiß, ich vergesse es immer

    also im error-log steht
    Code :
    1
    
    [Sun Sep 04 14:20:49 2011] [error] [client 127.0.0.1] Premature end of script headers: verbindenTest.cgi
    wenn ich mit mysql-Funktionen arbeite.
     

  7. #22
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Was ist, wenn du beim MySQL-haltigen Code nach dem Anfangsprintf, aber vor dem MySQL-Zeug eine Datei erstellst?
    Code cpp:
    1
    2
    3
    4
    
    FILE *dat;
    dat=fopen("bla", "w");
    if(!dat) printf("Fehler beim Schreiben");
    else fclose(dat);
    und das Ganze dann ausführst?
    Existiert die Datei dann?
     
    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, ...?

  8. #23
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Soll ich das jetzt zum MySQL-Code hinzufügen, oder das ins Programm schreiben ohne MySQL?
     

  9. #24
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Also wenn ich das in mein Programm einfüge, ohne irgendeine MySQL-Funktion, und ich das Programm aus dem Browser aufrufe, ist die Datei noch da
     

  10. #25
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    "Noch da"?
    Die sollte eigentlich neu erstellt werden.

    Datei löschen und mit MySQL-Code nach dem Dateierstellen ausführen.
    Die Premature-Meldung sollte trotzdem kommen, aber wird die Datei wieder erstellt?

    PS: Bitte keine Doppelposts (schon mehrmals).
     
    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, ...?

  11. #26
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Ich meinte damit ja, dass sie neu erstellt wurde

    Also, ich habe jetzt mal dieses Programm ausgeführt, und die Datei wurde erstellt aber ich bekomme wieder die Fehlermeldung 500 (sprich, die vom Anfang ):

    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");
        FILE *fp = fopen("datei.txt", "w+");
        if(fp == NULL)
          printf("Konnte Datei nicht öffnen!\n");
        else {
          printf("Datei libmysql.dll geöffnet!\n");
          fclose(fp);
        }
        MYSQL *my = mysql_init(NULL);
        if(my == NULL) {
          printf("Fehler bei mysql_init()\n");
          return EXIT_FAILURE;
        }
        return EXIT_SUCCESS;
    }
     

  12. #27
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Und wenn du das Programm CGI-los normal startest gehts komplett durch, auch mit MySQL?
    Seltsam.
    Bin wieder mal ideenlos.
     
    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, ...?

  13. #28
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Ja, als normale .exe funktioniert alles super

    Trotzdem vielen Dank für deine ausführliche Hilfe

    Ich nehme gerne noch andere Hilfe an
     

  14. #29
    yax yax ist offline Mitglied Gold
    Registriert seit
    Jul 2010
    Beiträge
    175
    Okay, ich habe es endlich geschaft Man muss am Ende einfach fflush(stdout); eingeben.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    #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);
        fflush(stdout);
        return EXIT_SUCCESS;
    }

    Und nochmals Danke für eure Hilfe
     

Ä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