mysql - invalid connection handle

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag,
    seit gestern Abend habe ich das Problem, dass nichts mehr aus meiner Datenbank gelesen werden kann und ich in der mysql_log immer die folgenden Errors erhalte sobald ich auf den Server connecte:


    [17:06:25][ERROR] "mysql_format" - invalid connection handle. (ID = 0).
    [17:06:25][ERROR] "mysql_tquery" - invalid connection handle. (ID = 0).


    Ich bekomme auch weder den Registrierungs- noch den Logindialog angezeigt.
    XAMPP läuft, dort auch mysql und apache, ich weiß wirklich nicht woran es liegt.
    Falls mehr Infos nötig sind einfach sagen...


    //edit


    #define db_host "127.0.0.1"
    #define db_user "samp"
    #define db_db "sampdb"
    #define db_pass "cl4YQAB1SnKNvUNO"//generiert


    dbhandle = mysql_connect(db_host, db_user, db_db, db_pass);


    public OnPlayerConnect(playerid)
    {
    new Name[MAX_PLAYER_NAME],string[256];
    GetPlayerName(playerid,Name,sizeof(Name));
    format(string,sizeof(string),"%s hat den Server betreten!",Name);
    SendClientMessageToAll(Blau,string);


    //Login/Registernew name[MAX_PLAYER_NAME], query[128];
    GetPlayerName(playerid,name,sizeof(name));
    mysql_format(dbhandle,query,sizeof(query),"SELECT id FROM spieler WHERE username='%s'",name);mysql_tquery(dbhandle,query,"OnUserCheck","i",playerid);
    return 1;
    }


    //push :(


    2 Mal editiert, zuletzt von EuroniX ()

  • Hast du denn auch eine Tabelle mit den Spalten und einen Benutzer mit dem Passwort angelegt?


    Wo erstellt du denn die Verbindung in deinem Script (mysql_connect)

    Durch die Variable "dbhandle" wie es auch oben steht, Tabelle usw ist auch vorhanden, hat ja vorher auch alles wunderbar funktioniert. Habe letztens nur ein paar Sachen am Script geändert wovon allerdings nichts mit MySQL zu tun hat und seit dem geht es komischerweise nicht mehr.


    MfG

  • Meine Frage war wo du jene Zeile denn stehen hast, also bei OnGameModeInit, bei OnVehicleSpawn, und wo genau in jenen Publics.

    OnGameModeInit


    Was hast du denn geändert?

    Autohaus im Script etwas dynamischer durch ein Enum gemacht und alle Werte in OnGameModeInit definiert.



    enum autohausAutos{
    car,
    carname[50],
    model,
    preis[15],
    Text3D:aautolabel,
    carstring[256]
    }


    new aauto[6][autohausAutos];



    //Unter OnGameModeInit
    aauto[0][car] = AddStaticVehicleEx(451,-1958.1387,304.2787,35.1765,180.3070,16,16,2); // Autohaus Turismo
    format(aauto[0][carname],50/*(sizeof)*/,"Turismo");
    aauto[0][model] = 451;
    aauto[0][preis] = 1000000;
    if(strlen(aauto[0][preis])==7)
    {
    strins(aauto[0][preis],".",1);
    strins(aauto[0][preis],".",5);
    }
    else
    {
    strins(aauto[0][preis],".",3);
    }
    format(aauto[0][carstring],256,"Name: %s\nPreis: %i$\nEinsteigen und per /buycar kaufen!",aauto[0][carname],aauto[0][preis]);


    Habe da als Wiedereinsteiger ein bisschen rumprobiert, das Enum wird auch beim Kaufbefehl komplett richtig ausgelesen und auch richtig bestimmt


    MfG

  • Ändere mal folgendes


    dbhandle = mysql_connect(db_host, db_user, db_db, db_pass);


    zu


    dbhandle = mysql_connect(db_host, db_user, db_pass, db_db);

  • Bringt auch nichts.


    mfG


    //edit


    Fehler entdeckt:
    Durch die If-Abfrage in OnGameModeInit hat er danach nicht mehr weitergelesen und dbhandle statt dort ganz unten. Alle Autos welche unter dieser If-Abfrage standen sind auch nicht mehr gespawnt. Funktioniert jz wieder :)


    Einmal editiert, zuletzt von EuroniX ()