Alles anzeigenHallo, ich habe meine ältere MySQL Version auf die aktuellste Version aktualisiert und habe nun ein Problem.
stock DB_Check_Charakter(playerid,charid) //DB_Check_Charakter(playerid,charid){new AccountID = DB_GetAccountID(playerid);printf("AccountID: %d",AccountID);new dbstring[256];format(dbstring, sizeof(dbstring), "SELECT ID FROM `"CHARAKTERTABLE"` WHERE AccountID = '%d' AND CHAR = '%d'", AccountID,charid);mysql_query(DB_Main,dbstring,true);new num_rows, num_fields;cache_get_data(num_rows, num_fields);printf(dbstring);printf("DB_Check_Charakter: %d | %d",num_rows,num_fields);if(num_rows == 1){return true;} else {return false;}}
Er gibt hier immer nur 0 zurück obwohl die Abfrage laut Print stimmt auch die ID etc.
Mit der älteren Version ging es auf der altmodischen Art.
Hier die Print´s:
Code[21:08:00] AccountID: 8 [21:08:00] SELECT ID FROM `charakter` WHERE AccountID = '8' AND CHAR = '1' [21:08:00] DB_Check_Charakter: 0 | 0
Der DB Ausschnitt:
====================================================
Anmerkung:
Bei der neueren Version hat er mir ständig den Fehler angezeigt:
Code....\a_mysql.inc(228) : error 017: undefined symbol "AMX_GetRelativeAddress" ....\a_mysql.inc(231) : error 017: undefined symbol "Callback_Array"
Diese habe ich aber ausgeklammert.
Ich empfehle dir mysql_pquery zu benutzen [wiki]MySQL/R33#mysql_pquery[/wiki]
Falls du jedoch weiterhin mysql_query benutzen willst, versuch mal
format(dbstring, sizeof(dbstring), "SELECT ID FROM `"CHARAKTERTABLE"` WHERE AccountID = '%d' AND CHAR = '%d'", AccountID,charid);
new Cache:Result = mysql_query(DB_Main,dbstring,true);
new num_rows, num_fields;
cache_get_data(num_rows, num_fields);
printf(dbstring);
printf("DB_Check_Charakter: %d | %d",num_rows,num_fields);
cache_delete(Result);