Mysql Error -.-

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
  • stock ErstelleBusiness(Float:X,Float:Y,Float:Z,preis,level,besitzer[24],name[128],kasse,eintritt)
    {
    new Query[128];
    format(Query,sizeof Query,"INSERT INTO `Business` (`Besitzer`,`BizName`,`Preis`,`Level`,`Kasse`,`Eintritt`,`PosX`,`PosY`,`PosZ`) VALUES ('%s','%s','%i','%i','%i','%i','%i','%i','%i')",besitzer,name,preis,level,kasse,eintritt,X,Y,Z);
    mysql_query(Query);
    mysql_free_result();
    return printf("Biz erstellt");
    }
    Er sagt immer :

    Code
    [Mon Dec 26 01:34:44 2011] Function: mysql_query executed: "INSERT INTO `Business` (`Besitzer`,`BizName`,`Preis`,`Level`,`Kasse`,`Eintritt`,`PosX`,`PosY`,`PosZ`) VALUES ('keiner1','test1'" with result: "1".
    [Mon Dec 26 01:34:44 2011] Error (0): Failed to exeute query. 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 '' at line 1.
    [Mon Dec 26 01:34:44 2011] Function: mysql_free_result executed.
  • Ahh danke :*
    //Edit Noch eine Frage, wei kann ich machen dass beim createn die ID in der MySqlTabelle immer ein weiter mit geht ?
    Weil bekomme immer das hier :)

    Code
    Error (0): Failed to exeute query. Duplicate entry '0' for key 'PRIMARY'

    Einmal editiert, zuletzt von Marco. ()

  • Ungefähr so:

    stock ErstelleBusiness(Float:X,Float:Y,Float:Z,preis,level,besitzer[24],name[128],kasse,eintritt)
    {
    new Query[400];
    mysql_query("SELECT NULL FROM Business");
    mysql_store_result();
    new rows = mysql_num_rows();
    mysql_free_result();
    new ID = rows++;
    format(Query,sizeof Query,"INSERT INTO `Business` (`ID`,`Besitzer`,`BizName`,`Preis`,`Level`,`Kasse`,`Eintritt`,`PosX`,`PosY`,`PosZ`) VALUES ('%s','%s','%i','%i','%i','%i','%i','%i','%i')",ID,besitzer,name,preis,level,kasse,eintritt,X,Y,Z);
    mysql_query(Query);
    mysql_free_result();
    return printf("Biz erstellt");
    }

  • AUTO_INCREMENT bei der Spalte aktivieren..


    btw.. du hast hier nen Fehler:
    format(Query,sizeof Query,"INSERT INTO `Business` (`Besitzer`,`BizName`,`Preis`,`Level`,`Kasse`,`Eintritt`,`PosX`,`PosY`,`PosZ`) VALUES ('%s','%s','%i','%i','%i','%i','%i','%i','%i')",besitzer,name,preis,level,kasse,eintritt,X,Y,Z);


    muss so sein:
    format(Query,sizeof Query,"INSERT INTO `Business` (`Besitzer`,`BizName`,`Preis`,`Level`,`Kasse`,`Eintritt`,`PosX`,`PosY`,`PosZ`) VALUES ('%s','%s','%i','%i','%i','%i','%f','%f','%f')",besitzer,name,preis,level,kasse,eintritt,X,Y,Z);


    Die letzten 3 Parameter sind Floats.. du formatierst sie aber als Integer..

  • Danke, klappt...
    //edit Ich dummbatz :D Danke Alex
    //edit2 Dann muss ich beim laden auch floatstr satt strval nehmen oder ?
    mysql_fetch_field("PosX",data);
    BizInfo[bizid][BizX] = strval(data);
    mysql_fetch_field("PosY",data);
    BizInfo[bizid][BizY] = strval(data);
    mysql_fetch_field("PosZ",data);
    BizInfo[bizid][BizZ] = strval(data);