SA-MP Forums Archive
Errores MySQL. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Errores MySQL. (/showthread.php?tid=636932)



Errores MySQL. - AndrewRussett - 05.07.2017

Buenas, estoy adaptando guardado/cargado MySQL a un GM, lo instalй todo bien pero hay errores, primero que nada no se actualiza los datos del jugador en la base de datos, asн lo tengo;

Код:
	new DB_Query[1500];
	mysql_format(sql_handle,DB_Query,sizeof(sql_handle),"UPDATE `players` SET `PosX`='%0.4f',`PosY`='%0.4f',`PosZ`='%0.4f',`Vida`='%f',`Chaleco`='%f',`Experiencia`='%f',`Interior`='%d',`VirtualWorld`='%d',`Dinero`='%d',`Nivel`='%d' WHERE `ID` = '%d' LIMIT 1",
        PosJugador[X],
        PosJugador[Y],
        PosJugador[Z],
        InfoJugador[playerid][jVida],
        InfoJugador[playerid][jChaleco],
        InfoJugador[playerid][jExperiencia],
        InfoJugador[playerid][jInterior],
        InfoJugador[playerid][jVirtualWorld],
        InfoJugador[playerid][jDinero],
        InfoJugador[playerid][jNivel],
		InfoJugador[playerid][jSQLID]
	);
	mysql_tquery(sql_handle, DB_Query);
Estos errores da en en log;

Код:
[15:15:15] [plugins/mysql] mysql_format: destination size '1' is too small
[15:15:15] [plugins/mysql] error #1065 while executing query "": Query was empty
Y al momento de cargar, lo tengo asн;

Y el error;

Код:
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_float: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_float: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_float: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_float: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_float: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_float: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name_int: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name: no active cache
[15:14:57] [plugins/mysql] cache_get_value_name: no active cache
Код:
		case dIngreso:
		{
			if(response)
			{
				new Salted_Key[65];
				SHA256_PassHash(inputtext, InfoJugador[playerid][jSalt], Salted_Key, 65);
				if(strcmp(Salted_Key, InfoJugador[playerid][jClave]) == 0)
				{
					cache_set_active(InfoJugador[playerid][jPlayer_Cache]);
	            	cache_get_value_int(0, "ID", InfoJugador[playerid][jSQLID]);
	            	cache_get_value(0, "Registrado", InfoJugador[playerid][jRegistrado]);
	            	cache_get_value_int(0, "Sexo", InfoJugador[playerid][jSexo]);
	            	cache_get_value_int(0, "EstiloP", InfoJugador[playerid][jPelea]);
	            	cache_get_value_int(0, "EstiloC", InfoJugador[playerid][jEstilo]);
	            	cache_get_value_int(0, "Admin", InfoJugador[playerid][jAdmin]);
	            	cache_get_value_int(0, "Interior", InfoJugador[playerid][jInterior]);
	            	cache_get_value_int(0, "VirtualWorld", InfoJugador[playerid][jVirtualWorld]);
	            	cache_get_value_int(0, "Dinero", InfoJugador[playerid][jDinero]);
	            	cache_get_value_float(0, "PosX", InfoJugador[playerid][jPosX]);
	            	cache_get_value_float(0, "PosY", InfoJugador[playerid][jPosY]);
	            	cache_get_value_float(0, "PosZ", InfoJugador[playerid][jPosZ]);
	            	cache_get_value_int(0, "Lider", InfoJugador[playerid][jLider]);
	            	cache_get_value_int(0, "Miembro", InfoJugador[playerid][jMiembro]);
	            	cache_get_value_int(0, "Rango", InfoJugador[playerid][jRango]);
	            	cache_get_value_int(0, "Encarcelado", InfoJugador[playerid][jEncarcelado]);
	            	cache_get_value_int(0, "TEncarcelado", InfoJugador[playerid][jTiempoCarcel]);
	            	cache_get_value_int(0, "Ropa1", InfoJugador[playerid][jRopa][0]);
	            	cache_get_value_int(0, "Ropa2", InfoJugador[playerid][jRopa][1]);
	            	cache_get_value_int(0, "Ropa3", InfoJugador[playerid][jRopa][2]);
	            	cache_get_value_int(0, "Ropa4", InfoJugador[playerid][jRopa][3]);
	            	cache_get_value_int(0, "Nivel", InfoJugador[playerid][jNivel]);
	            	cache_get_value_int(0, "MinutosJ", InfoJugador[playerid][jMinutos]);
	            	cache_get_value_int(0, "HorasJ", InfoJugador[playerid][jHoras]);
	            	cache_get_value_float(0, "Vida", InfoJugador[playerid][jVida]);
	            	cache_get_value_float(0, "Chaleco", InfoJugador[playerid][jChaleco]);
	            	cache_get_value_float(0, "Experiencia", InfoJugador[playerid][jExperiencia]);
	            	cache_get_value_int(0, "LiderF", InfoJugador[playerid][jLiderFam]);
	            	cache_get_value_int(0, "MiembroF", InfoJugador[playerid][jMiembroFam]);
	            	cache_get_value_int(0, "RangoF", InfoJugador[playerid][jRangoFam]);
	            	cache_get_value_int(0, "Trabajo", InfoJugador[playerid][jTrabajo]);
	            	cache_get_value_int(0, "Entregas", InfoJugador[playerid][jEntregas]);
	            	cache_get_value_int(0, "Cosechas", InfoJugador[playerid][jCosechas]);
	            	cache_get_value_int(0, "Telefono", InfoJugador[playerid][jNumeroCel]);
	            	cache_get_value_int(0, "CuentaBD", InfoJugador[playerid][jIDCuentaB]);
	            	cache_get_value(0, "Tazer", InfoJugador[playerid][jTazer]);
	            	cache_get_value(0, "LicenciaC", InfoJugador[playerid][jLicenciaAuto]);
	            	cache_get_value(0, "LicenciaM", InfoJugador[playerid][jLicenciaMoto]);
	            	
					SetPVarInt(playerid, "Logueado", 1);
					if(InfoJugador[playerid][jRegistrado])
					{
						CargarCuenta(playerid);
					}
					else SpawnPlayer(playerid);

					cache_delete(InfoJugador[playerid][jPlayer_Cache]);
					InfoJugador[playerid][jPlayer_Cache] = MYSQL_INVALID_CACHE;
				}
				else
				{
				    if(GetPVarInt(playerid,"ErraContraseсa") >= 3)
					{
					    Error(playerid,"Lнmite de intentos excedidos, "#CROJO"ЎKickeado!");
						return Kick(playerid);
					}
					SetPVarInt(playerid,"ErraContraseсa", GetPVarInt(playerid,"ErraContraseсa")+1 );
        			Dialog(playerid, dIngreso, DIALOG_STYLE_PASSWORD, "Login", "Login", "Ingresar", "Cancelar");
				}
				return 1;
			}else return Kick(playerid);
		}



Re: Errores MySQL. - Miguel - 05.07.2017

Код:
[15:15:15] [plugins/mysql] mysql_format: destination size '1' is too small
Se debe a que enviaste sizeof(sql_handle) como argumento a la funciуn mysql_format. Si observas bien, el argumento que pide la funciуn mysql_format es el tamaсo mбximo de la string a la que quieres darle formato, en tu caso, DB_Query. Obviamente, el tamaсo de sql_handle es una celda y eso no es suficiente para todo lo que quieres meter dentro de DB_Query.

їQuй debes hacer? Cambiar sizeof(sql_handle) por sizeof(DB_Query) - 1, ya que el tamaсo mбximo de la cadena de caracteres a la que quieres darle formato es la cantidad de celdas disponibles DB_Query. Viйndolo de otra forma, DB_Query tiene un tamaсo de 1500 celdas de las cuales 1499 estбn disponibles, y de ahн el sizeof(DB_Query) - 1.

Si quieres saber porque solo estбn disponibles 1499 celdas tendrнas que leer sobre cadenas de caracteres y sobre el caracter nulo.

Код:
[15:15:15] [plugins/mysql] error #1065 while executing query "": Query was empty
Este error es una consecuencia del error previo. Al colocar el tamaсo mбximo como 1 haces que se envнe una consulta vacнa. Solucionar el primer error deberнa ayudar a mitigar este problema.

No estoy seguro de que significan los errores relacionados al cache...


Respuesta: Re: Errores MySQL. - AndrewRussett - 06.07.2017

Quote:
Originally Posted by Miguel
Посмотреть сообщение
Код:
[15:15:15] [plugins/mysql] mysql_format: destination size '1' is too small
Se debe a que enviaste sizeof(sql_handle) como argumento a la funciуn mysql_format. Si observas bien, el argumento que pide la funciуn mysql_format es el tamaсo mбximo de la string a la que quieres darle formato, en tu caso, DB_Query. Obviamente, el tamaсo de sql_handle es una celda y eso no es suficiente para todo lo que quieres meter dentro de DB_Query.

їQuй debes hacer? Cambiar sizeof(sql_handle) por sizeof(DB_Query) - 1, ya que el tamaсo mбximo de la cadena de caracteres a la que quieres darle formato es la cantidad de celdas disponibles DB_Query. Viйndolo de otra forma, DB_Query tiene un tamaсo de 1500 celdas de las cuales 1499 estбn disponibles, y de ahн el sizeof(DB_Query) - 1.

Si quieres saber porque solo estбn disponibles 1499 celdas tendrнas que leer sobre cadenas de caracteres y sobre el caracter nulo.

Код:
[15:15:15] [plugins/mysql] error #1065 while executing query "": Query was empty
Este error es una consecuencia del error previo. Al colocar el tamaсo mбximo como 1 haces que se envнe una consulta vacнa. Solucionar el primer error deberнa ayudar a mitigar este problema.

No estoy seguro de que significan los errores relacionados al cache...
Ah, no notй el coso en el sizeof, error grave mнo, errores de cabeza para nada...muchas gracias, +REP, lo aprecio mucho.