MySQL Fehler

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
  • Mein Problem ist, dass der folgende stock nicht funktioniert.
    stock CreateVehicleForPlayer(Besitzer, Model, Farbe1, Farbe2, Tueren, Float:X, Float:Y, Float:Z, Float:A, Respawn, Nummernschild[])
    {
    new query[512], Besitzer2[MAX_PLAYER_NAME];
    GetPlayerName(Besitzer, Besitzer2, MAX_PLAYER_NAME);
    mysql_real_escape_string(Besitzer2, Besitzer2);
    format(query, sizeof(query), "INSERT INTO `grra` (`Model`, `Farbe1`, `Farbe2`, `Tueren`, `PosX`, `PosY`, `PosZ`, `PosA`, `Respawn`) VALUES ('%d', '%d', '%d', '%d', '%f', '%f', '%f', '%f', '%d')", Model, Farbe1, Farbe2, Tueren, X, Y, Z, A, Respawn);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `grra` SET `Besitzer` = '%s' WHERE `PosX` = '%f'", Besitzer2, X);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `grra` SET `Nummernschild` = '%s' WHERE `PosX` = '%f'", Nummernschild, X);
    mysql_query(query);
    mysql_free_result();
    AutoLaden(Besitzer);
    return true;
    }

  • 783115 Zeilen ! Dafuq? --> Sind das für die paar Minuten immer so viele Logzeilen? :huh:


    Ich editiere gleich mal eher das Ende hier hin, wo ich den Befehl ausprobiert habe. ;)


    [01:13:18] CMySQLHandler::EscapeString(Exp); - Escaped 3 characters to Exp.
    [01:13:18] >> mysql_real_escape_string( Connection handle: 1 )
    [01:13:18] CMySQLHandler::EscapeString(Name); - Escaped 4 characters to Name.
    [01:13:18] >> mysql_real_escape_string( Connection handle: 1 )
    [01:13:18] CMySQLHandler::EscapeString(); - Escaped 0 characters to .
    [01:13:18] >> mysql_query( Connection handle: 1 )
    [01:13:18] CMySQLHandler::Query(UPDATE `grrs` SET `Exp` = '0' WHERE `Name` = '') - Successfully executed.
    [01:13:18] >> mysql_real_escape_string( Connection handle: 1 )
    [01:13:18] CMySQLHandler::EscapeString(grrs); - Escaped 4 characters to grrs.
    [01:13:18] >> mysql_real_escape_string( Connection handle: 1 )
    [01:13:18] CMySQLHandler::EscapeString(Expzeit); - Escaped 7 characters to Expzeit.
    [01:13:18] >> mysql_real_escape_string( Connection handle: 1 )
    [01:13:18] CMySQLHandler::EscapeString(Name); - Escaped 4 characters to Name.
    [01:13:18] >> mysql_real_escape_string( Connection handle: 1 )
    [01:13:18] CMySQLHandler::EscapeString(); - Escaped 0 characters to .
    [01:13:18] >> mysql_query( Connection handle: 1 )
    [01:13:18] CMySQLHandler::Query(UPDATE `grrs` SET `Expzeit` = '0' WHERE `Name` = '') - Successfully executed.
    [01:13:18] >> mysql_real_escape_string( Connection handle: 1 )
    [01:13:18] CMySQLHandler::EscapeString(grrs); - Escaped 4 characters to grrs.
    [01:13:18] >> mysql_real_escape_string( Connection handle: 1 )
    [01:13:18] CMySQLHandler::EscapeString(Fraktion); - Escaped 8 characters to Fraktion.
    [01:13:18] >> mysql_real_escape_string( Connection handle: 1 )
    [01:13:18] CMySQLHandler::EscapeString(Name); - Escaped 4 characters to Name.
    [01:13:18] >> mysql_real_escape_string( Connection handle: 1 )
    [01:13:18] CMySQLHandler::EscapeString(); - Escaped 0 characters to .
    Die letzten 25 Zeilen

  • [01:25:36] CMySQLHandler::FreeResult() - Result was successfully free'd.


    [01:25:51] >> mysql_real_escape_string( Connection handle: 1 )


    [01:25:51] CMySQLHandler::EscapeString(Python); - Escaped 6 characters to Python.


    [01:25:51] >> mysql_query( Connection handle: 1 )


    [01:25:51] CMySQLHandler::Query(INSERT INTO `grra` (`Model`, `Farbe1`, `Farbe2`, `Tueren`, `PosX`, `PosY`, `PosZ`, `PosA`, `Respawn`) VALUES ('522', '6', '0', '0', '2204.454589', '1848.268432', '10.820312', '85.926658', '300')) - An error has occured. (Error ID: 1054, Unknown column 'Farbe1' in 'field list')


    [01:25:51] >> mysql_query( Connection handle: 1 )


    [01:25:51] CMySQLHandler::Query(UPDATE `grra` SET `Besitzer` = `Python` WHERE `PosX` = '2204.454589') - An error has occured. (Error ID: 1054, Unknown column 'Python' in 'field list')


    [01:25:51] >> mysql_query( Connection handle: 1 )


    [01:25:51] CMySQLHandler::Query(UPDATE `grra` SET `Nummernschild` = `Python` WHERE `PosX` = '2204.454589') - An error has occured. (Error ID: 1054, Unknown column 'Python' in 'field list')


    [01:25:54] >> mysql_real_escape_string( Connection handle: 1 )


    [01:25:54] CMySQLHandler::EscapeString(grrs); - Escaped 4 characters to grrs.


    [01:25:54] >> mysql_real_escape_string( Connection handle: 1 )
    Da haben wir den Error-Salat ^^


    Error ID: 1054, Unknown column 'Python' in 'field list'
    Error ID: 1054, Unknown column 'Farbe1' in 'field list'

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Das kannst du auch freundlicher sagen. Aber er sollte das schon machen, weil
    SET `Besitzer` = `Python`
    falsch ist. Es muss
    SET `Besitzer` = 'Python'
    heißen. Das hat er ja bei den anderen auch so gemacht. ;)


    EDIT: War an Beavis gerichtet, dessen Post weg ist.

  • Entschuldigung :) Sollte nicht unfreundlich rüberkommen.


    Bin gerade voll froh, dass hier Leute sind wie ihr. :)


    Okay, erneuter Test
    [01:38:55] CMySQLHandler::Query(INSERT INTO 'grra' ('Besitzer', 'Model', 'Farbe_1', 'Farbe_2', 'Tueren', 'PosX', 'PosY', 'PosZ', 'PosA', 'Respawn', 'Nummernschild') VALUES ('Python', '522', '6', '0', '0', '2202.324218', '1848.419189', '10.820312', '89.373367', '300', 'Python')) - An error has occured. (Error ID: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''grra' ('Besitzer', 'Model', 'Farbe_1', 'Farbe_2', 'Tueren', 'PosX', 'PosY', 'Po' at line 1)

  • Du darfst bei grra die ` nicht durch ' ersetzen, sondern nur bei deiner Where Abfrage.


    /EDIT: Hier nochmal die erklärung wann man was nutzt in kurzform:
    Die ` werden nur bei Tabellen Namen genommen. Strings die in Tabellen eingetragen / abgefragt werden sollen brauchen ein '



    SQL
    INSERT INTO `grra` ('Besitzer', 'Model', 'Farbe_1', 'Farbe_2', 'Tueren', 'PosX', 'PosY', 'PosZ', 'PosA', 'Respawn', 'Nummernschild') VALUES ('Python', '522', '6', '0', '0', '2202.324218', '1848.419189', '10.820312', '89.373367', '300', 'Python')


    Gruß, Zunno

  • Artus, das war nicht an dich gerichtet. :)
    Der andere Post war einfach weg.


    Und nicht alle ersetzen sondern nur genau an der Stelle die ich geschrieben hatte. Kann dir via Handy leider nicht den ganzen PAWN Code geben, das würde ewig dauern. ^^
    Also nur da wo ich es geschrieben hab.


    Zunno: Ich meine die Spalten müssen auch das ` haben.


    EDIT: An den Post unten:
    Ja, dann hab ich richtig gedacht, spalten brauchen auch das `.

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry™ ()

  • Erledigt und getestet. Derselbe Error mit der Syntax erscheint.


    So sieht es in meinem Script derzeit aus:
    format(query, sizeof(query), "INSERT INTO `grra`('Besitzer','Model','Farbe_1','Farbe_2','Tueren','PosX','PosY','PosZ','PosA','Respawn','Nummernschild') VALUES ('%s', '%d', '%d', '%d', '%d', '%f', '%f', '%f', '%f', '%d', '%s')", Besitzer2, Model, Farbe1, Farbe2, Tueren, X, Y, Z, A, Respawn, Nummernschild);
    Dann probiere ich es mit diesen schrägen Teil nochmal in den Spalten aus :)


    Server braucht dank dem Debug immer paar Minuten bis er da ist :D

  • Genau Spalten waren es ^^ Ich wusste das irgendwas fehlt, aber es ist mir gerade nicht eingefallen :D


    Aber hier ist es auch nochmal leicht beschrieben.
    http://dev.mysql.com/doc/refman/5.0/en/identifiers.html


    /EDIT:
    Mein Query oben hat auch nen Fehler.
    Natürlich muss es so sein:


    SQL
    format(query, sizeof(query), "INSERT INTO `grra` (`Besitzer`,`Model`,`Farbe_1`,`Farbe_2`,`Tueren`,`PosX`,`PosY`,`PosZ`,`PosA`,`Respawn`,`Nummernschild`) VALUES ('%s', '%d', '%d', '%d', '%d', '%f', '%f', '%f', '%f', '%d', '%s')", Besitzer2, Model, Farbe1, Farbe2, Tueren, X, Y, Z, A, Respawn, Nummernschild);
  • Super danke! :)


    Das speichern klappt. Bei dem Rotationswert hat er einen integer, statt einem Float hineingeschrieben, obwohl im Script alles auf Float gestellt war.


    Naja. Teste das ganze jetzt. :)


    Nochmals vielen vielen Dank an euch! :love:


    Vor allem um die Uhrzeit :rolleyes:


    Ihr seid einfach :thumbup:


    /////////////


    Nächstes Problem.


    Habe jetzt das Fahrzeug mit dem Befehl eingefügt und füge jetzt noch ein anderes ein.


    Aber irgendwie speichert er jetzt das 1. Fahrzeug einfach zum 2. mal ein.


    Eine einfache Kopie.


    stock CreateVehicleForPlayer(Besitzer, Model, Farbe1, Farbe2, Tueren, Float:X, Float:Y, Float:Z, Float:A, Respawn, Nummernschild[])
    {
    new query[1024], Besitzer2[MAX_PLAYER_NAME];
    GetPlayerName(Besitzer, Besitzer2, MAX_PLAYER_NAME);
    mysql_real_escape_string(Besitzer2, Besitzer2);
    format(query, sizeof(query), "INSERT INTO `grra`(`Besitzer`,`Model`,`Farbe_1`,`Farbe_2`,`Tueren`,`PosX`,`PosY`,`PosZ`,`PosA`,`Respawn`,`Nummernschild`) VALUES ('%s', '%d', '%d', '%d', '%d', '%f', '%f', '%f', '%f', '%d', '%s')", Besitzer2, Model, Farbe1, Farbe2, Tueren, X, Y, Z, A, Respawn, Nummernschild);
    mysql_query(query);
    AutoLaden(Besitzer);
    return true;
    }


    stock AutoLaden(playerid)
    {
    for(new i=0; i!=MAX_VEHICLES; i++)
    {
    if(!strcmp(SpielerDaten[playerid][pName], AutoDaten[i][aBesitzer]) && strlen(AutoDaten[i][aBesitzer]))
    {
    DestroyVehicle(i); // Fahrzeug wird auch nicht zerstört, welches schon da ist. --> Fahrzeuge werden bei OnGameModeInit erstellt.
    format(AutoDaten[i][aBesitzer],64,mysql_GetString("grra", "Besitzer", "Besitzer", SpielerDaten[playerid][pName]));
    AutoDaten[i][aModel] = mysql_GetInt("grra", "Model", "Besitzer", SpielerDaten[playerid][pName]);
    AutoDaten[i][aFarbe1] = mysql_GetInt("grra", "Farbe_1", "Besitzer", SpielerDaten[playerid][pName]);
    AutoDaten[i][aFarbe2] = mysql_GetInt("grra", "Farbe_2", "Besitzer", SpielerDaten[playerid][pName]);
    AutoDaten[i][aTueren] = mysql_GetInt("grra", "Tueren", "Besitzer", SpielerDaten[playerid][pName]);
    AutoDaten[i][aPosX] = mysql_GetFloat("grra", "PosX", "Besitzer", SpielerDaten[playerid][pName]);
    AutoDaten[i][aPosY] = mysql_GetFloat("grra", "PosY", "Besitzer", SpielerDaten[playerid][pName]);
    AutoDaten[i][aPosZ] = mysql_GetFloat("grra", "PosZ", "Besitzer", SpielerDaten[playerid][pName]);
    AutoDaten[i][aPosA] = mysql_GetFloat("grra", "PosA", "Besitzer", SpielerDaten[playerid][pName]);
    AutoDaten[i][aRespawn] = mysql_GetInt("grra", "Respawn", "Besitzer", SpielerDaten[playerid][pName]);
    format(AutoDaten[i][aNummernschild],16,mysql_GetString("grra", "Nummernschild", "Besitzer", SpielerDaten[playerid][pName]));
    AutoDaten[i][aID] = AddStaticVehicleEx(AutoDaten[i][aModel], AutoDaten[i][aPosX], AutoDaten[i][aPosY], AutoDaten[i][aPosZ], AutoDaten[i][aPosA], AutoDaten[i][aFarbe1], AutoDaten[i][aFarbe2], AutoDaten[i][aRespawn]);
    SetVehicleNumberPlate(i, AutoDaten[i][aNummernschild]);
    }
    }
    return 1;
    }
    Wo könnten die Fehler liegen?


    P.S.:
    Der Befehl
    ocmd:pAuto(playerid, params[])
    {
    if(SpielerDaten[playerid][pAdmin] >= 3)
    {
    new Besitzer, Model, Farbe1, Farbe2, Tueren, Respawn, Nummernschild[16], Float:X, Float:Y, Float:Z, Float:A;
    if(sscanf(params, "dddddds[16]", Besitzer, Model, Farbe1, Farbe2, Tueren, Respawn, Nummernschild)) return SendClientMessage(playerid, Rot, "Benutzung: /pAuto [ID] [Model] [Farbe1] [Farbe2] [Tueren] [Respawn] [Nummernschild]");
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, A);
    CreateVehicleForPlayer(Besitzer, Model, Farbe1, Farbe2, Tueren, X, Y, Z, A, Respawn, Nummernschild);
    }
    return 1;
    }