MySQL Plugin Problem

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 musste gestern wegen einem Update an der MySQL-Lib das MySQL Plugin wechseln. In diesem gibt es aber die Funktion mysql_fetch_field nicht mehr, ich kann also nicht mehr einfach Fields auslesen. Nun meine Frage, wie lese ich die Felder aus einer Zeile aus. Momentan hab ich es so versucht, jedoch ohne Erfolg. Ich weiss, wenn ich mal Zeit habe, werde ich das Ganze mit sscanf 2.0 stark abkürzen ;)


    public LoadVehicle(Carid)
    {
    new data[256];
    format(query, sizeof(query), "SELECT * FROM `Vehicles` WHERE CarID = '%d';",Carid);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows() > 0)
    {
    mysql_get_field("CarID",data);
    VehicleSystem[Carid][CarID]=strval(data);
    mysql_get_field("Model",data);
    VehicleSystem[Carid][Model]=strval(data);
    mysql_get_field("Locked",data);
    VehicleSystem[Carid][Locked]=strval(data);
    mysql_get_field("CFrak",data);
    VehicleSystem[Carid][Fraktion]=strval(data);
    mysql_get_field("CJob",data);
    VehicleSystem[Carid][Beruf]=strval(data);
    mysql_get_field("CNoob",data);
    VehicleSystem[Carid][Noob]=strval(data);
    mysql_get_field("CVer",data);
    VehicleSystem[Carid][Verwahrt]=strval(data);
    mysql_get_field("CTun",data);
    VehicleSystem[Carid][Tunebar]=strval(data);
    mysql_get_field("CarX",data);
    VehicleSystem[Carid][Carx]=strval(data);
    mysql_get_field("CarY",data);
    VehicleSystem[Carid][Cary]=strval(data);
    mysql_get_field("CarZ",data);
    VehicleSystem[Carid][Carz]=strval(data);
    mysql_get_field("CarA",data);
    VehicleSystem[Carid][Cara]=strval(data);
    mysql_get_field("AdacX",data);
    VehicleSystem[Carid][Adacx]=strval(data);
    mysql_get_field("AdacY",data);
    VehicleSystem[Carid][Adacy]=strval(data);
    mysql_get_field("AdacZ",data);
    VehicleSystem[Carid][Adacz]=strval(data);
    mysql_get_field("AdacA",data);
    VehicleSystem[Carid][Adaca]=strval(data);
    mysql_get_field("Color1",data);
    VehicleSystem[Carid][Color1]=strval(data);
    mysql_get_field("Color2",data);
    VehicleSystem[Carid][Color2]=strval(data);
    mysql_get_field("Price",data);
    VehicleSystem[Carid][Price]=strval(data);
    mysql_get_field("Sell",data);
    VehicleSystem[Carid][Sell]=strval(data);
    mysql_get_field("Owner",data);
    strmid(VehicleSystem[Carid][Owner],data,0,20,20);
    mysql_get_field("PJ",data);
    VehicleSystem[Carid][Pj]=strval(data);
    mysql_get_field("T0",data);
    VehicleSystem[Carid][Tt0]=strval(data);
    mysql_get_field("T1",data);
    VehicleSystem[Carid][Tt1]=strval(data);
    mysql_get_field("T2",data);
    VehicleSystem[Carid][Tt2]=strval(data);
    mysql_get_field("T3",data);
    VehicleSystem[Carid][Tt3]=strval(data);
    mysql_get_field("T4",data);
    VehicleSystem[Carid][Tt4]=strval(data);
    mysql_get_field("T5",data);
    VehicleSystem[Carid][Tt5]=strval(data);
    mysql_get_field("T6",data);
    VehicleSystem[Carid][Tt6]=strval(data);
    mysql_get_field("T7",data);
    VehicleSystem[Carid][Tt7]=strval(data);
    mysql_get_field("T8",data);
    VehicleSystem[Carid][Tt8]=strval(data);
    mysql_get_field("T9",data);
    VehicleSystem[Carid][Tt9]=strval(data);
    mysql_get_field("T10",data);
    VehicleSystem[Carid][Tt10]=strval(data);
    mysql_get_field("T11",data);
    VehicleSystem[Carid][Tt11]=strval(data);
    mysql_get_field("T12",data);
    VehicleSystem[Carid][Tt12]=strval(data);
    mysql_get_field("T13",data);
    VehicleSystem[Carid][Tt13]=strval(data);
    new carr = CreateVehicle(VehicleSystem[Carid][Model],VehicleSystem[Carid][Carx],VehicleSystem[Carid][Cary],VehicleSystem[Carid][Carz]+1,VehicleSystem[Carid][Cara],VehicleSystem[Carid][Color1],VehicleSystem[Carid][Color2],600000);
    IsBuyableCar[carr]=Carid;
    SetVehicleTuning(carr);
    AutoCounter ++;
    }
    mysql_free_result();
    return 1;
    }


    MfG dUDA


    //Edit


    Er reklamiert in der mysql_log, dass er keinen Zugriff hat und dann das Query nicht ausgeführt werden kann


    8:47:32] CMySQLHandler::Connect() - Access denied for user 'samp1111' localhost (using password: YES) (Error ID: 1045)
    [08:47:32] >> mysql_query( Connection handle: 1 )
    [08:47:32] CMySQLHandler::Query() - You cannot call this function now. (Reason: Connection is dead)
    [08:47:32] >> mysql_store_result( Connection handle: 1 )

  • Hallo


    Ja, bei meinem alten Plugin waren Datenbank und Passwort vertauscht (nicht Wiki-Norm xD). Zudem hab ich jetzt alles korrigiert, aber der Server geht immer nach dem 1.mysql_fetch_field offline.


    public LoadVehicle(Carid)
    {
    new data[256], daten;
    format(query, sizeof(query), "SELECT * FROM `Vehicles` WHERE CarID = '%d';",Carid);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows() > 0)
    {
    mysql_fetch_field(daten,"CarID");
    VehicleSystem[Carid][CarID]=daten;
    mysql_fetch_field(daten,"Model");
    VehicleSystem[Carid][Model]=daten;


    Langsam kommts, man ich muss alles umändern.
    MfG dUDA


    //Edit
    Wenn ich mysql_fetch_field auskommentiere, läuft der Server wieder ganz normal. Ich wäre um Hilfe sehr sehr froh


  • public LoadVehicle(carid)
    {
    new query[256],
    bedienung[256], data[256];
    format(query,sizeof(query),"SELECT * FROM Vehicles WHERE %d",carid);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows()){
    mysql_fetch_field("CarID",data);
    VehicleSystem[Carid][CarID] = strval(data);


  • Hallo


    Ich verwende dieses Plugin und diese Include. Ich habe mit deiner Methode einen Error ;)


    http://forum.sa-mp.com/showthr…ghlight=mysql_fetch_field


    public LoadVehicle(Carid)
    {
    //new query[256],
    new bedienung[256], data[256];
    format(query,sizeof(query),"SELECT * FROM Vehicles WHERE %d",Carid);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows())
    {
    mysql_fetch_field("CarID",data); //Zeile 15609
    VehicleSystem[Carid][CarID] = strval(data); //15610


    }
    return 1;
    }


    Error:
    C:\Users\X\Desktop\dudalusv255.pwn(15609) : error 035: argument type mismatch (argument 1)


    Native aus der Include:
    native mysql_fetch_field(number,dest[],connectionHandle = 1);
    Also, kann man das Feld nicht mit einem String auslesen. Ich habe das ganze mit nem Integer versucht aber nach dem 1.mysql_fetch_field geht der Server offline. Früher konnte ich es auch mit einem String auslesen, aber seitdem der Hoster die mysql-lib geupdatet und ich die MySQL Sachen wechseln musste, geht dies leider nicht mehr


    //Edit 2
    Habs mal so versucht, aber ohne Erfolg:
    http://pastebin.com/swsNUWhB


    MfG dUDA