Kleines Problem mit MySQL

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 etwas im MySQL Bereich verändert und jetzt spuckt es einen Error in einer Zeile aus, in der ich nichts gemacht habe, hat da jemand eine Ahnung ?


    public OnGameModeInit() // 719
    {
    SetTimer("ConnectionMySQL",2000,1);
    mysql_init();
    if(mysql_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)==0)
    {
    SendRconCommand("exit");
    }
    else
    {
    //730
    mysql_query("CREATE TABLE IF NOT EXISTS `Vehicles` \
    (`CarID` INT NOT NULL,\
    `CarFraktion` INT NOT NULL,\
    `CarJob` INT NOT NULL,\
    `CarNoob` INT NOT NULL,\
    `Model` INT NOT NULL,\
    `Locked` INT NOT NULL,\
    `CarVerwahrt` INT NOT NULL,\
    `CarTunebar` INT NOT NULL,\
    `CarX` FLOAT NOT NULL,\
    `CarY` FLOAT NOT NULL,\
    `CarZ` FLOAT NOT NULL,\
    `CarA` FLOAT NOT NULL,\
    `AdacX` FLOAT NOT NULL,\
    `AdacY` FLOAT NOT NULL,\
    `AdacZ` FLOAT NOT NULL,\
    `AdacA` FLOAT NOT NULL,\
    `Color1` INT NOT NULL,\
    `Color2` INT NOT NULL,\
    `Price` INT NOT NULL,\
    `Sell` INT NOT NULL,`Owner` TEXT NOT NULL);");
    } //752
    return 1; //753
    }


    C:\Users\X\Desktop\dudalus236.pwn(748) : error 075: input line too long (after substitutions)
    C:\Users\X\Desktop\dudalus236.pwn(749) : error 027: invalid character constant
    C:\Users\X\Desktop\dudalus236.pwn(749) : error 017: undefined symbol "CREATE"
    C:\Users\X\Desktop\dudalus236.pwn(749) : error 017: undefined symbol "TABLE"
    C:\Users\X\Desktop\dudalus236.pwn(749) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.


    MfG dUDA

  • Huhu


    Ja, wie kann ich den in 2 Teile teilen ? Ist ja nicht der Sinn ^^


    //Edit:
    Das soll rein


    mysql_query("CREATE TABLE IF NOT EXISTS `Vehicles` \
    (`CarID` INT NOT NULL,\
    `CarFraktion` INT NOT NULL,\
    `CarJob` INT NOT NULL,\
    `CarNoob` INT NOT NULL,\
    `Model` INT NOT NULL,\
    `Locked` INT NOT NULL,\
    `CarVerwahrt` INT NOT NULL,\
    `CarTunebar` INT NOT NULL,\
    `CarX` FLOAT NOT NULL,\
    `CarY` FLOAT NOT NULL,\
    `CarZ` FLOAT NOT NULL,\
    `CarA` FLOAT NOT NULL,\
    `AdacX` FLOAT NOT NULL,\
    `AdacY` FLOAT NOT NULL,\
    `AdacZ` FLOAT NOT NULL,\
    `AdacA` FLOAT NOT NULL,\
    `Color1` INT NOT NULL,\
    `Color2` INT NOT NULL,\
    `Price` INT NOT NULL,\
    `Sell` INT NOT NULL,\
    `Owner` TEXT NOT NULL);");

  • Hi


    Klar, xD


    z.B. so:


    new mysqlstring1[200];
    new mysqlstring2[200];


    format(mysqlstring1, sizeof(mysqlstring1),"CREATE TABLE IF NOT EXISTS `Vehicles` (`CarID` INT NOT NULL,`CarFraktion` INT NOT NULL,`CarJob` INT NOT NULL,`CarNoob` INT NOT NULL, `Model` INT NOT NULL, `Locked` INT NOT NULL,`CarVerwahrt` INT NOT NULL,`CarTunebar` INT NOT NULL,`CarX` FLOAT NOT NULL,`CarY` FLOAT NOT NULL,`CarZ` FLOAT NOT NULL,");
    format(mysqlstring2,sizeof(mysqlstring2),"%s `CarA` FLOAT NOT NULL, `AdacX` FLOAT NOT NULL,`AdacY` FLOAT NOT NULL,`AdacZ` FLOAT NOT NULL,`AdacA` FLOAT NOT NULL, `Color1` INT NOT NULL,`Color2` INT NOT NULL,`Price` INT NOT NULL, `Sell` INT NOT NULL,`Owner` TEXT NOT NULL)", mysqlstring1);
    mysql_query(mysqlstring2);


    Sollte klappen, hab aber kp obs geht xD Versuch einfach ma^^


    MFG, Robdeflop®

  • Hallo


    Wenn ich als FBI Member in ein Cop Auto (CarFraktion = 1) einsteige, wirft es mich nicht raus ???
    Schaus genauer an, weiss nochnicht ob es wirklich an deiner Lösung liegt, warum geht das eigentlich nicht alles normal ? Schreibt MySQL eine maximale String-Länge vor oder wie ?


    MfG dUDA

  • Ich werde nie verstehen warum es Leute gibt, die die mySQL Struktur nicht sauber vom Script trennen. Wo ist der Sinn *jedes* Mal wenn der Server gestartet wird eine Abfrage zu starten ob die fürs Script notwendigen Tabellen existieren. Trennt doch eure Tabellenerstellung sauber vom Script und schmeisst alles in ne .sql File rein.

    GameMode / Filterscript / Plugin Development via
    - PAWN / C/C++
    - Database (mySQL) & Filebased - Systems


    Webdevelopment / Interfaces Webapplications - SA:MP Server via
    - HTML & CSS
    - PHP, JavaScript, Ajax

  • Hallo


    Weisst du, Leute wie du (nicht negativ gemeint), wissen wie sowas geht, aber wenn ich von sowas keine Kenntnis habe und mir eh alles selber aneignen muss, kommt man halt nicht immer oder nicht immer so schnell auf die "beste" Möglichkeit. Jeder macht Fehler, vor allem am Anfang (eines neuen Gebietes) ;)


    MfG dUDA


    //Edit
    Irgendwie geht das mit der Datenbank jetzt nicht, habe sie gelöscht, jedoch wird sie jetzt nicht mehr erstellt, was sie ja sollte,wenn sie nicht existiert ?


    //Edir 2
    Eben die Fehlermeldung wegen der nicht existierenden DB, aber beim einten Fehler hackts doch auch rum ?
    [17:52:22] [MySQL] Connected (0) to samp1111 @ Localhost via UNIX socket.
    [17:52:22] [MySQL] Version 5.1.41-3ubuntu12.6.
    [17:52:22] [MySQL] 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.
    [17:52:22] [MySQL] Error (0): Failed to exeute query. Table 'samp1111.Vehicles' doesn't exist.
    [17:52:22] [MySQL] Error (0): Function: mysql_store_result called when no prior successful query executed. Table 'samp1111.Vehicles' doesn't exist.
    [17:52:22] [MySQL] Error (0): Function: mysql_num_rows called when no result stored. Table 'samp1111.Vehicles' doesn't exist.


    Ich denke das Problem ist, dass das query, welches ich am Anfang benutzt habe, nicht mehr "vorhanden" ist, sondern durch die 2 Strings von BugScripter ersetzt ist, welche doch aber nicht beide geladen werden ?

  • Ist auch nur als Verbesserungsvorschlag gedacht.


    Gemeint ist damit, dass du alle Strukturen erstellenden Queries aus dem Script rausnimmst, dir ne .sql File erstellst und sie da reinwirfst. Wenn Du den Server das erste mal erstellst connectest zuvor zum Mysql Server und führst die sql Datei dort aus.


    Den Fehler kannst wortwörtlich übersetzen - dein mysql query ist syntaktisch nicht korrekt.


    Warum du einen String formatierst anstelle das Query (was keine Formatierung benötigt) direkt auszuführen verstehe ich auch nicht.

    GameMode / Filterscript / Plugin Development via
    - PAWN / C/C++
    - Database (mySQL) & Filebased - Systems


    Webdevelopment / Interfaces Webapplications - SA:MP Server via
    - HTML & CSS
    - PHP, JavaScript, Ajax