Server stürzt bei MySQL Abfrage ohne jegliche Fehler ab

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
  • Hallo,
    ich habe heute mitnem Projektpartner/Kumpel zsm. eine MySQL Abfrage gemacht. Leider stürzt der Server bei der Abfrage ohne jegliche Hinweise auf Fehler ab.
    Der Stock mit der Abfrage:
    Spawn_Vehicles()
    {
    mysql_query("SELECT * FROM `vehiles`");
    mysql_store_result();


    print("Test before While");


    while(mysql_retrieve_row())
    {
    print("Test in While");
    new modelid[128];
    print("Test after new modelid[128];");
    new posx[128];
    print("Test after new posx[128];");
    new posy[128];
    print("Test after new posy[128];");
    new posz[128];
    print("Test after new posz[128];");
    new posa[128];
    print("Test after new posa[128];");
    new errno[128];
    format(errno, sizeof(errno), "%i", mysql_errno());
    print(errno);
    mysql_fetch_field(1, modelid);
    print("Test after mysql_fetch_field(1, modelid);");
    mysql_fetch_field(2, posx);
    print("Test after mysql_fetch_field(2, posx);");
    mysql_fetch_field(3, posy);
    print("Test after mysql_fetch_field(3, posy);");
    mysql_fetch_field(4, posz);
    print("Test after mysql_fetch_field(4, posz);");
    mysql_fetch_field(5, posa);
    print("Test after mysql_fetch_field(5, posa);");

    new test[128];
    format(test, sizeof(test), "ModelID: %s", modelid);
    SendClientMessageToAll(0xFFFFFFFF, test);


    format(test, sizeof(test), "posx: %s", posx);
    SendClientMessageToAll(0xFFFFFFFF, test);


    format(test, sizeof(test), "posy: %s", posy);
    SendClientMessageToAll(0xFFFFFFFF, test);


    format(test, sizeof(test), "posz: %s", posz);
    SendClientMessageToAll(0xFFFFFFFF, test);


    format(test, sizeof(test), "posa: %s", posa);
    SendClientMessageToAll(0xFFFFFFFF, test);
    print("Test by the end of While");
    break;
    }


    mysql_free_result();
    return 1;
    }


    Hier wird der Stock aufgerufen:
    Spawn_Vehicles();


    In der Log:
    ----------
    Loaded log file: "server_log.txt".
    ----------


    SA-MP Dedicated Server
    ----------------------
    v0.3e, (C)2005-2012 SA-MP Team


    [16:13:45]
    [16:13:45] Server Plugins
    [16:13:45] --------------
    [16:13:45] Loading plugin: mysql.so
    [16:13:45]


    > MySQL plugin R5 successfully loaded.


    [16:13:45] Loaded.
    [16:13:45] Loaded 1 plugins.


    [16:13:45]
    [16:13:45] Ban list
    [16:13:45] --------
    [16:13:45] Loaded: samp.ban
    [16:13:45]
    [16:13:45]
    [16:13:45] Filterscripts
    [16:13:45] ---------------
    [16:13:45] Loading filterscript 'cameditor.amx'...
    [16:13:45]
    --------------------------------------
    [16:13:45] CamEditor by Drebin
    [16:13:45] --------------------------------------


    [16:13:45] Loaded 1 filterscripts.


    [16:13:45] <-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!
    [16:13:45]
    ----------------------------------
    [16:13:45] Galaxy Reallife
    [16:13:45] ----------------------------------


    [16:13:45] Number of vehicle models: 0
    [16:13:58] Incoming connection: 91.97.4.160:54592
    [16:13:59] [join] CheezeStickz has joined the server (0:91.97.4.160)
    [16:14:09] Test before While
    [16:14:09] Test in While
    [16:14:09] Test after new modelid[128];
    [16:14:09] Test after new posx[128];
    [16:14:09] Test after new posy[128];
    [16:14:09] Test after new posz[128];
    [16:14:09] Test after new posa[128];
    [16:14:09] 0


    Bitte um hilfe.


    Danke!


    P.s. Ich hab noch nie was in MySQL gemacht, also selber, ich habs mir selbst zusammen geschraubt, mit etwas hilfe von meinem Projektpartner/Kumpel.


    mfg
    Sonderzeichen

  • Mein Projektpartner/Kumpel sagte, die Zahlen müssern dahin ^^


    Also das wäre dann z.B. modelid, posx, posy und so?


    Ich werds mal ausprobieren



    //e. Wenn ich da die Namen der Felder reinschreibe, kommen diese fehler:
    (803) : error 035: argument type mismatch (argument 1)
    (805) : error 035: argument type mismatch (argument 1)
    (807) : error 035: argument type mismatch (argument 1)
    (809) : error 035: argument type mismatch (argument 1)
    (811) : error 035: argument type mismatch (argument 1)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.


    Zeile 803 ist die erste mysql_fetch_field Zeil


    Hier der Link von wo ichs genommen habe: http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_field

  • Es geht, danke!

    :)


    //e. Noch ein Problem. Undzwar, ich will jetzt ein Fahrzeug spawnen. Alle Daten werden auch ausgelesen. Beim Compilen kommt aber folgendes:
    (818) : error 035: argument type mismatch (argument 1)


    Zeile 818:
    CreateVehicle(modelid, posx, posy, posz, posa, color1, color2, respawn);

    Einmal editiert, zuletzt von doge_ ()

  • Noch ein Problem. Undzwar, ich will jetzt ein Fahrzeug spawnen. Alle Daten werden auch ausgelesen. Beim Compilen kommt aber


    folgendes:
    (818) : error 035: argument type mismatch (argument 1)


    Zeile 818:
    CreateVehicle(modelid, posx, posy, posz, posa, color1, color2, respawn);

  • wenn ich das mache, kommen warnings:
    (797) : warning 213: tag mismatch
    (798) : warning 213: tag mismatch
    (799) : warning 213: tag mismatch
    (800) : warning 213: tag mismatch
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    Das sind die Zeilen wo die Werte aus der Datenbank geholt werden.

  • Spawn_Vehicles()
    {
    mysql_query("SELECT * FROM `vehicles`");
    mysql_store_result();


    while(mysql_retrieve_row())
    {
    new modelid[128];
    new Float:posx[128];
    new Float:posy[128];
    new Float:posz[128];
    new Float:posa[128];
    new color1[128];
    new color2[128];
    new respawn[128];

    mysql_fetch_field_row(modelid, "modelid");
    mysql_fetch_field_row(posx, "posx");
    mysql_fetch_field_row(posy, "posy");
    mysql_fetch_field_row(posz, "posz");
    mysql_fetch_field_row(posa, "posa");
    mysql_fetch_field_row(color1, "color1");
    mysql_fetch_field_row(color2, "color2");
    mysql_fetch_field_row(respawn, "respawn");

    new test[128];
    format(test, sizeof(test), "ModelID: %s", modelid);
    SendClientMessageToAll(0xFFFFFFFF, test);


    format(test, sizeof(test), "posx: %s", posx);
    SendClientMessageToAll(0xFFFFFFFF, test);


    format(test, sizeof(test), "posy: %s", posy);
    SendClientMessageToAll(0xFFFFFFFF, test);


    format(test, sizeof(test), "posz: %s", posz);
    SendClientMessageToAll(0xFFFFFFFF, test);


    format(test, sizeof(test), "posa: %s", posa);
    SendClientMessageToAll(0xFFFFFFFF, test);

    CreateVehicle(modelid, posx, posy, posz, posa, color1, color2, respawn);
    }
    mysql_free_result();
    return 1;
    }

  • Teste mal das hier
    und float ist kein string auch ein intger ist kein string da brauch man nicht [128] hinterschreiben
    Spawn_Vehicles()
    {
    mysql_query("SELECT * FROM `vehicles`");
    mysql_store_result();


    while(mysql_retrieve_row())
    {
    new modelid,Float:posx,Float:posy,Float:posz,Float:posa,color1,color2,respawn;


    mysql_fetch_field_row(modelid, "modelid");
    mysql_fetch_field_row(posx, "posx");
    mysql_fetch_field_row(posy, "posy");
    mysql_fetch_field_row(posz, "posz");
    mysql_fetch_field_row(posa, "posa");
    mysql_fetch_field_row(color1, "color1");
    mysql_fetch_field_row(color2, "color2");
    mysql_fetch_field_row(respawn, "respawn");


    new test[128];
    format(test, sizeof(test), "ModelID: %d", strval(modelid));
    SendClientMessageToAll(0xFFFFFFFF, test);


    format(test, sizeof(test), "posx: %f", floatstr(posx));
    SendClientMessageToAll(0xFFFFFFFF, test);


    format(test, sizeof(test), "posy: %f", floatstr(posy));
    SendClientMessageToAll(0xFFFFFFFF, test);


    format(test, sizeof(test), "posz: %f", floatstr(posz));
    SendClientMessageToAll(0xFFFFFFFF, test);


    format(test, sizeof(test), "posa: %f", floatstr(posa));
    SendClientMessageToAll(0xFFFFFFFF, test);


    CreateVehicle(strval(modelid), floatstr(posx), floatstr(posy), floatstr(posz), floatstr(posa), strval(color1), strval(color2), strval(respawn));
    }
    mysql_free_result();
    return 1;
    }

    All in all it's just another brick in the wall

  • (789) : error 035: argument type mismatch (argument 1)
    (790) : error 035: argument type mismatch (argument 1)
    (791) : error 035: argument type mismatch (argument 1)
    (792) : error 035: argument type mismatch (argument 1)
    (793) : error 035: argument type mismatch (argument 1)
    (794) : error 035: argument type mismatch (argument 1)
    (795) : error 035: argument type mismatch (argument 1)
    (796) : error 035: argument type mismatch (argument 1)
    (798) : warning 217: loose indentation
    (799) : warning 217: loose indentation
    (799) : error 035: argument type mismatch (argument 1)
    (802) : error 035: argument type mismatch (argument 1)
    (805) : error 035: argument type mismatch (argument 1)
    (808) : error 035: argument type mismatch (argument 1)
    (811) : error 035: argument type mismatch (argument 1)
    (814) : error 035: argument type mismatch (argument 1)
    (787) : warning 203: symbol is never used: "respawn"
    (787) : warning 203: symbol is never used: "color2"
    (787) : warning 203: symbol is never used: "color1"
    (787) : warning 203: symbol is never used: "posa"
    (787) : warning 203: symbol is never used: "posz"
    (787) : warning 203: symbol is never used: "posy"
    (787) : warning 203: symbol is never used: "posx"
    (787) : warning 203: symbol is never used: "modelid"

  • C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(789) : error 035: argument type mismatch (argument 1)
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(790) : error 035: argument type mismatch (argument 1)
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(791) : error 035: argument type mismatch (argument 1)
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(792) : error 035: argument type mismatch (argument 1)
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(793) : error 035: argument type mismatch (argument 1)
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(794) : error 035: argument type mismatch (argument 1)
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(795) : error 035: argument type mismatch (argument 1)
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(796) : error 035: argument type mismatch (argument 1)
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(798) : warning 217: loose indentation
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(799) : warning 217: loose indentation
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(799) : error 035: argument type mismatch (argument 1)
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(802) : error 035: argument type mismatch (argument 1)
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(805) : error 035: argument type mismatch (argument 1)
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(808) : error 035: argument type mismatch (argument 1)
    C:\Users\Felix\Desktop\Mein SAMP Server\gamemodes\grl.pwn(811) : error 035: argument type mismatch (argument 1)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    Geht nicht :(

    Einmal editiert, zuletzt von doge_ ()