11.02.2014, 03:12
Bueno, nose que pasa que mi server no se conecta con la base de datos MySql, nose que hize mal, los script creo que estan bien.
Estos son todos los lugares en donde uso mysql, en donde estarб el error? :/ o capas que me falte algun plugin, uso el mysql.so
Una foto de la tabla creada en la base de datos
pawn Код:
//MySql
#define MySQL_Servidor "localhost" // bueno aca lo dejo asi creo
#define MySQL_Usuario "root" //Aca que se pone? la Conexion remota ?
#define MySQL_BD "Aca el nombre de mi base de datos"
#define MySQL_Clave "aca la clave de la base de datos"
ShowMainMenuDialog(playerid, frame)
{
new titlestring[28];
new string[256];
new pName[24], Query[256]; GetPlayerName(playerid, pName, 24);
InsideMainMenu[playerid] = true;
switch(frame)
{
case LOGIN:
{
INI_ParseFile(UserPath(playerid), "LoadUser_pass", .bExtra = true, .extra = playerid);
format(Query, sizeof(Query), "SELECT * FROM `usuarios` WHERE `Nombre` = '%s'", pName);
mysql_function_query(Conecction, Query, true, "OnQueryFinish", "ii", 1, playerid);
new ip[32];
GetPlayerIp(playerid, ip, 32);
format(titlestring, sizeof(titlestring), "{C0C0C0}Cuenta Registrada");
format(string, sizeof(string), "{8080FF}Contraseсa:");
SafeDialogEx(playerid,DLOGIN,DIALOG_STYLE_PASSWORD ,titlestring,string,"Entrar","Salir");
SetPlayerVirtualWorld(playerid, 20);
}
case REGISTRO:
{
new ip[32];
GetPlayerIp(playerid, ip, 32);
format(titlestring, sizeof(titlestring), "{C0C0C0}Cuenta Nueva");
format(string, sizeof(string), "{8080FF}Contraseсa:");
SafeDialogEx(playerid,DREGISTER,DIALOG_STYLE_INPUT ,titlestring,string,"Registrar","Salir");
SetPlayerVirtualWorld(playerid, 20);
format(Query, sizeof(Query), "INSERT INTO `usuarios` (Nombre, Contraseсa) VALUES ('%s', '%s')",pName, Info[playerid][pKey]);
mysql_function_query(Conecction, Query, true, "OnQueryFinish", "ii", 0, playerid);
}
}
}
public OnGameModeInit()
{
printf("Iniciando conexiуn MySQL: (Servidor: '%s', Usuario: '%s', Clave: '%s', Base de Datos: '%s')", MySQL_Servidor, MySQL_Usuario, MySQL_Clave, MySQL_BD);
Conecction = mysql_connect(MySQL_Servidor, MySQL_Usuario, MySQL_BD,MySQL_Clave);
if(mysql_ping() == 1) //Comprobamos si se conectу
{
printf("Conexiуn a la base de datos realizada correctamente.");
}
else //Caso contrario:
{
print("Conexiуn a la base de datos no realizada.");
mysql_close(); //Cerramos la conexiуn
SendRconCommand("exit"); //Cerramos la consola para evitar bug's
}
return 1;
}
public OnQueryError(errorid, error[], callback[], query[], connectionHandle )
{
printf("[ERROR] ID: %d - Error: %s - Callback - %s - Query: %s", errorid, error, callback, query); //Imprimimos el mensaje en la consola
return 1;
}
forward CheckPlayer(playerid);
public CheckPlayer(playerid)
{
new pName[24], Query[256];
GetPlayerName(playerid, pName, 24);
format(Query, sizeof(Query), "SELECT * FROM `usuarios` WHERE Nombre='%s'", pName);
mysql_function_query(Conecction, Query, true, "OnQueryFinish", "ii",2, playerid);
return 1;
}
forward OnQueryFinish(resultid, extraid, ConnectionHandle);
public OnQueryFinish(resultid, extraid, ConnectionHandle)
{
new Rows, Field, string[256];
if(resultid != 0)
{
cache_get_data(Rows, Field);
}
switch(resultid)
{
case 1:
{
if(Rows == 1)
{
new content[8];
cache_get_field_content(0, "Contraseсa", content); Info[extraid][pKey] = strval(content);
cache_get_field_content(0, "Admin", content); Info[extraid][pAdminZC] = strval(content);
cache_get_field_content(0, "Score", content); Info[extraid][pLevel] = strval(content);
cache_get_field_content(0, "Vida", content); Info[extraid][pHealth] = floatstr(content);
cache_get_field_content(0, "Chaleco", content); Info[extraid][pArmour] = floatstr(content);
cache_get_field_content(0, "Posx", content); Info[extraid][pPos_x] = floatstr(content);
cache_get_field_content(0, "Posy", content); Info[extraid][pPos_y] = floatstr(content);
cache_get_field_content(0, "Posz", content); Info[extraid][pPos_z] = floatstr(content);
}
else if(!Rows)
{
//
}
}
case 2:
{
if(Rows == 1)
{
new pName[24]; GetPlayerName(extraid, pName, 24);
cache_get_field_content(0, "Contraseсa", Info[extraid][pKey]);
format(string, sizeof(string), "El personaje %s estб registrado en la base de datos. Pon los datos para iniciar sesiуn:", pName);
ShowPlayerDialog(extraid, LOGIN, DIALOG_STYLE_PASSWORD,"Login",string,"Enviar","Salir");
}
else if(!Rows)
{
new pName[24]; GetPlayerName(extraid, pName, 24);
format(string, sizeof(string), "El jugador %s no estб registrado en el servidor, pon aquн la contraseсa para registrarlo:", pName);
ShowPlayerDialog(extraid, REGISTRO, DIALOG_STYLE_PASSWORD,"Registro:",string,"Enviar","Salir");
}
}
}
return 1;
}
forward SaveAccounts(playerid);public SaveAccounts(playerid)
{
new query[200];GetPlayerPos(playerid, Info[playerid][pPos_x], Info[playerid][pPos_y], Info[playerid][pPos_z]);
new pName[24]; GetPlayerName(playerid, pName, 24); GetPlayerHealth(playerid, Info[playerid][pHealth]), GetPlayerArmour(playerid, Info[playerid][pArmour]);
format(query, 200, "UPDATE `usuarios` SET `Vida`='%f', `Chaleco`='%f', `Admin`='%d', `Score`='%d', `Posx`='%f', `Posy`='%f', `Posz`='%f' WHERE `Nombre`='%s'", Info[playerid][pHealth], Info[playerid][pArmour],
Info[playerid][pAdminZC], Info[playerid][pLevel], Info[playerid][pPos_x], Info[playerid][pPos_y], Info[playerid][pPos_z], pName);
mysql_function_query(Conecction, query, true, "OnQueryFinish", "ii", 0, playerid);
return 1;
}
Una foto de la tabla creada en la base de datos