SQLite no guarda los datos -
Ghost112397 - 02.11.2015
Buenas, estaba haciendo un guardado de datos con SQLite, pero resulta que a la hora de guardar, no guarda nada.
Alguien me podrнa ayudar? Desde ya muchas gracias.
PHP код:
hook OnPlayerDisconnect(playerid, reason)
{
new query[128], DBResult:r_query;
format(query, sizeof(query), "UPDATE `jugadores` SET `Baneado` = '%i', `Admin` = '%i', `AdminRango` = '%q'\
`Vip` = '%i', `Vida` = '%f', `Chaleco` = '%f', `Skin` = '%i', `VW` = '%i', `Interior` = '%i' \
WHERE `Nombre` = '%q'",
Info[playerid][pBaneado],
Info[playerid][pAdmin],
Info[playerid][pAdminRango],
Info[playerid][pVip],
Info[playerid][pVida],
Info[playerid][pChaleco],
Info[playerid][pSkin],
GetPlayerVirtualWorld(playerid),
GetPlayerInterior(playerid),
NombreJugador(playerid));
r_query = db_query(servidor,query);
db_free_result(r_query);
return 1;
}
PHP код:
case DIALOG_CLAVESEC:
{
if(response == 1)
{
if(strlen(inputtext) < 4 || strlen(inputtext) > 24) return ShowPlayerDialog(playerid, DIALOG_CLAVESEC, DIALOG_STYLE_INPUT, "Clave secreta", "Introduce una clave secreta que usarбs en caso de olvidar tu clave\nNo pongas la misma clave que la principal\n{FF0000}La clave debe tener mбs de 4 carбcteres y menos de 24","Aceptar","");
new sas[270], DBResult:result;
format(sas, sizeof(sas), "INSERT INTO `jugadores` (`Nombre`,`Password`,`PassSecreta`,`Baneado`,`Admin`,`AdminRango`,`Vip`,`Vida`,`Chaleco`,`VW`,`Interior`) VALUES ('%q','%q','%q',0,0,'Ninguno',0,100.0,0.0,0,0)",NombreJugador(playerid),Info[playerid][pPass],inputtext);
result = db_query(servidor,sas);
db_free_result(result);
HaLogueado[playerid] = true;
}
}
Respuesta: SQLite no guarda los datos -
Ghost112397 - 04.11.2015
Una ayuda por favor?
Re: SQLite no guarda los datos -
RIDE2DAY - 04.11.2015
En la primera query el tamaсo de la variable no es suficiente, deberнas poner 230 celdas aproximadamente para que te quepa todo. Luego al usar
\ para saltar de lнnea olvidaste poner la coma
, despuйs del campo
AdminRango.
PHP код:
format(query, sizeof(query),
"UPDATE `jugadores` SET `Baneado` = '%i', `Admin` = '%i', `AdminRango` = '%q', \
`Vip` = '%i', `Vida` = '%f', `Chaleco` = '%f', `Skin` = '%i', `VW` = '%i', `Interior` = '%i' \
WHERE `Nombre` = '%q'",
Info[playerid][pBaneado],
Info[playerid][pAdmin],
Info[playerid][pAdminRango],
Info[playerid][pVip],
Info[playerid][pVida],
Info[playerid][pChaleco],
Info[playerid][pSkin],
GetPlayerVirtualWorld(playerid),
GetPlayerInterior(playerid),
NombreJugador(playerid)
);
La segunda parece estar bien, si no te funciona comprueba el tamaсo de las variables. Recuerda que si no te interesa el resultado que devuelve
db_query puedes hacer lo siguiente para no declarar una variable del tipo
DBResult:
http://forum.sa-mp.com/images/editor/menupop.gif
PHP код:
db_free_result(db_query(sql_handle, query));
PD: puedes hacer una depuraciуn (debug) del SQLite poniendo en server.cfg lo siguiente:
Код:
db_logging 1
db_log_queries 1
De esta forma podrбs ver en el
server_log.txt los errores que cometas.