Szerző Téma: SQL hiba  (Megtekintve 1645 alkalommal)

SQL hiba
« Dátum: 2017. július 25. - 00:48:54 »
0 Show voters
Sziasztok, nemrégiben kezdtem el SQL-el szkriptelni és elakadtam. Xampp -al akarok localhoston tárolni egyenlőre, le i töltöttem majd az SQL -t és az Apache-t élindítottam. Pawnoba kapcsolódtam rá ahogy leírták. De valamiért nem működik. R/40-est használok és több gond is van vele. 
 
 
 
Itt a kód:
 

#include <   a_samp      >
#include <    zcmd       >
#include <sscanf2>
#include <    dini       >
#include <    dudb       >
#include < fixchars.h    >
#include <    float       >
#include <    core       >
#include <GetVehicleColor>
#include <streamer>
#include <a_mysql>
//-----------------------------------------[Dialogs]---------------------------------
#define login 1
#define register 2
//-----------------------------------------------------------------------------------
#pragma unused ret_memcpy
#pragma unused PRIVATE_Last_Money
new kapcsolat;
new all[1024];
main()
{
}
 
public OnGameModeInit()
{
kapcsolat = mysql_connect(\"localhost\",\"root\",\"\",\"dm\");

if(kapcsolat != -1)
{
   format(all, sizeof all, \"[MySQL] - Sikeres csatlakozas! Csatlakozás értéke: %d. %d\",mysql_errno(kapcsolat),kapcsolat);
   printf(all);
}
else
{
       format(all, sizeof all, \"[MySQL] - Sikertelen csatlakozas! Csatlakozás értéke: %d, %d\",mysql_errno(kapcsolat),kapcsolat);
   printf(all);
   SendRconCommand(\"exit\");
}
SetGameModeText(\"1.0 BETA\");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
format(all, sizeof all, \"SELECT * FROM Karakterek WHERE Nev = \'%s\'\", pname(playerid));
mysql_tquery(kapcsolat, all, \"Login\", \"d\", playerid);
return 1;
}
forward Login(playerid);
public Login(playerid)
{
    SendClientMessage(playerid, -1, \"Meghívás, lekérdezés elött\");
if(cache_get_row_count() == 0)
{
    SendClientMessage(playerid, -1, \"Nem létezik ez a felhasználó\");
      format(all,312,\"Üdvözlünk a szerveren %s!\\nKérlek regisztrálj, írj be egy tetszőleges jelszót majd nyomj \'Regisztrál\' gombra!\",pname(playerid));
      ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,\"... - Bejelentkezés\",all,\"Belépés\",\"Mégse\");
}
else
{
    SendClientMessage(playerid, -1, \"Létezik\");
    for(new i = 0; i < 35; i++) { SendClientMessage(playerid,-1,\"\"); }
      format(all,312,\"Üdvözlünk a szerveren %s!\\nKérlek írd be a jelszót, majd kattints a \'Mehet\' gombra!\",pname(playerid));
      ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,\"... - Bejelentkezés\",all,\"Belépés\",\"Mégse\");
}
return 1;
}

 
Ha megy a Xampp hanem a konzol sikeres csatlakozást ír, és a szerveren se jelenik meg semmi. Kérlek valaki magyarázza el mi a hiba, fontos lenne. Előre köszönöm. 
« Utoljára szerkesztve: 2017. július 25. - 00:54:06 írta zsolti125 »

SQL hiba
« Válasz #1 Dátum: 2017. július 25. - 12:07:04 »
0 Show voters
Első:
 

new MySQL:kapcsolat;

 
Második:
 

if(!mysql_errno(kapcsolat))
{
format(all, sizeof all, \"[MySQL] - Sikeres csatlakozas! Csatlakozás értéke:  %d\",kapcsolat);
printf(all);
}
else
{
    format(all, sizeof all, \"[MySQL] - Sikertelen csatlakozas! Csatlakozás értéke: %d, %d\",mysql_errno(kapcsolat),kapcsolat);
printf(all);
SendRconCommand(\"exit\");
}

 
Mivel a mysql_errno az a hiba ID-jét adja vissza, így érdemes ezzel megnézni, hogy van-e hiba a csatlakozásban.
 
Az elsőnél meg csak szimplán hiányzott a MySQL: tag.
 
ha így sem jó, akkor küldj egy MySQL logot.
« Utoljára szerkesztve: 2017. július 25. - 12:07:28 írta zsoolt997 »

Nem elérhető gbr333

  • 670
    • Profil megtekintése
SQL hiba
« Válasz #2 Dátum: 2017. július 25. - 12:42:31 »
0 Show voters
Tessék , megcsináltam neked.
 
Olvasd el a kommenteket amiket beletettem.
 
+ Ezt is nézd át , sokat segít. MySQL R40 - WIKI
 

#include <   a_samp      >
#include <    zcmd       >
#include <   sscanf2      >
#include <    dini       >
#include <    dudb       >
#include < fixchars.h   >
 
// Felesleges includeolni a floatot és a core-t , mivel alapból bennevannak az a_samp includeban.
#include <GetVehicleColor>
#include <streamer>
#include <a_mysql>
//-----------------------------------------[Dialogs]---------------------------------
#define login 1
#define register 2
//-----------------------------------------------------------------------------------
 
new MySQL:kapcsolat; // MySQL: előtagot kell használni.
new all[1024];
main()
{}
 
public OnGameModeInit()
{
kapcsolat = mysql_connect(\"localhost\",\"root\",\"\",\"dm\");
if(mysql_errno(kapcsolat) == 0)
{
   //felesleges ide a format.
       print(\"[MySQL] - Sikeres csatlakozas!\");
}
else
{
       //felesleges ide a format.
   printf(\"[MySQL] - Sikertelen csatlakozas! Csatlakozás értéke: %d, %d\",mysql_errno(kapcsolat));
   SendRconCommand(\"exit\");
}
SetGameModeText(\"1.0 BETA\");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
mysql_format(kapcsolat, all, sizeof(all), \"SELECT * FROM Karakterek WHERE Nev = \'%e\'\", pname(playerid)); // mysql_formatot használunk és %s helyett %e(mysql_escape_string) ,mert ugye nem akarjuk ,hogy teleinjektáljál.
mysql_tquery(kapcsolat, all, \"Login\", \"d\", playerid);
return 1;
}
forward Login(playerid);
public Login(playerid)
{
    SendClientMessage(playerid, -1, \"Meghívás, lekérdezés elött\");
    new row_count;// ebbe a változóba kérjük \"bele\" a sorok számát.
    cache_get_row_count(row_count); // a cache_get_row_count nem a sorok számát adja vissza,hanem a művelet eredményét . 0 = nem sikerült , 1 = sikerült
if(row_count == 0)
{
    SendClientMessage(playerid, -1, \"Nem létezik ez a felhasználó\");
      format(all,312,\"Üdvözlünk a szerveren %s!\\nKérlek regisztrálj, írj be egy tetszőleges jelszót majd nyomj \'Regisztrál\' gombra!\",pname(playerid));
      ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,\"... - Bejelentkezés\",all,\"Belépés\",\"Mégse\");
}
else
{
   
    for(new i = 0; i < 35; i++) { SendClientMessage(playerid,-1,\"\"); }
        SendClientMessage(playerid, -1, \"Létezik\");
      format(all,312,\"Üdvözlünk a szerveren %s!\\nKérlek írd be a jelszót, majd kattints a \'Mehet\' gombra!\",pname(playerid));
      ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,\"... - Bejelentkezés\",all,\"Belépés\",\"Mégse\");
}
return 1;
}

 
 

SQL hiba
« Válasz #3 Dátum: 2017. július 25. - 15:49:44 »
0 Show voters
Köszönöm, de nem kapcsolódik. Kilövi a szervert ha elindítom. Szóval sikertelen a kapcsolódás. Itt az SQL log:
 
[15:40:17] [ERROR] mysql_connect - empty connection data specified
[15:40:17] [ERROR] mysql_errno - invalid connection handle (id: 0)
[15:40:17] [ERROR] mysql_errno - invalid connection handle (id: 0)
[15:40:37] [ERROR] mysql_connect - empty connection data specified
[15:40:37] [ERROR] mysql_errno - invalid connection handle (id: 0)
[15:40:37] [ERROR] mysql_errno - invalid connection handle (id: 0)
[15:40:38] [ERROR] mysql_connect - empty connection data specified
[15:40:38] [ERROR] mysql_errno - invalid connection handle (id: 0)
[15:40:38] [ERROR] mysql_errno - invalid connection handle (id: 0)
 
 
 
Xampp fut Apache és SQL-el szóval nem értem.
 
 

Nem elérhető gbr333

  • 670
    • Profil megtekintése
SQL hiba
« Válasz #4 Dátum: 2017. július 25. - 16:34:17 »
0 Show voters
Nekem tökéletesen működik.
 
Tessék , itt a legújabb verzió. Próbáld meg ezzel.:
 
https://github.com/pBlueG/SA-MP-MySQL/releases/download/R41-3/mysql-R41-3-win32.zip
 
 
 
 

SQL hiba
« Válasz #5 Dátum: 2017. július 25. - 16:41:56 »
0 Show voters
Köszi, sikerült kapcsolódni de a Login nem hívódik meg. Lecompile-oltam újra de semmi. :(
 
 

Nem elérhető gbr333

  • 670
    • Profil megtekintése
SQL hiba
« Válasz #6 Dátum: 2017. július 25. - 17:00:24 »
0 Show voters
Biztos , hogy minden a legfrissebb ?
 
A log nem ír semmit?
 
 

SQL hiba
« Válasz #7 Dátum: 2017. július 25. - 17:06:42 »
0 Show voters
A helyzet hogy az eredeti modommal semmi baj nincs, kaptam egy dll.-t hozzá és megy is. Szóval köszönöm.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal