MySQL query y format...
#1

їEs normal que este cуdigo no haga absolutamente NADA?(No modifica nada en la base de datos)

Код:
		new tmp[2048];
		format(tmp, sizeof(tmp), "UPDATE usuarios SET pContrasena = '%d',\
		pPosX = '%f',\
		pPosY = '%f',\
		pPosZ = '%f',\
		pMySQLID = '%d',\
		pVirtualWorld = '%d',\
		pInterior = '%d',\
		pVida = '%f',\
		pChaleco = '%f',\
		pDinero = '%d',\
		pSkin = '%d',\
		pFAngle = '%f',\
		pAdminZC = '%d',\
		pEstiloHablar = '%d',\
		pAcento = '%d',\
		WHERE pNombre = '%q'",
		Info[playerid][pContrasena],
		Info[playerid][pPosicion][0],
		Info[playerid][pPosicion][1],
		Info[playerid][pPosicion][2],
		Info[playerid][pMySQLID],
		Info[playerid][pVirtualWorld],
		Info[playerid][pInterior],
		Info[playerid][pVida],
		Info[playerid][pChaleco],
		Info[playerid][pDinero],
		Info[playerid][pSkin],
		Info[playerid][pFAngle],
		Info[playerid][pAdminZC],
		Info[playerid][pEstiloHablar],
		Info[playerid][pAcento],
		GetPlayerNameEx(playerid));
		mysql_query(handle, tmp);
Probй sacando todo y dejando solo ""UPDATE usuarios SET pVida = '%f' WHERE pNombre = %s" y todo el format en una misma linea, y si funciono..їpero porque de esta forma no?. No me tira ningъn error.
Reply
#2

Antes del WHERE no puede aver una coma (,) ya que es interpretado como error de sintaxis.
Reply
#3

Quote:
Originally Posted by mcreed
Посмотреть сообщение
Antes del WHERE no puede aver una coma (,) ya que es interpretado como error de sintaxis.
No lo habнa notado, y eso que lo revise varias veces...

Gracias
Reply
#4

Sigue pasando.

Lo toque un poco a ver si milagrosamente andaba, pero nada de nada. Dejo el callback entero que uso con el cуdigo que me genera problemas:
Код:
funcion GuardarDatosMYSQL(playerid)
{
    if(IsPlayerLogged[playerid] == true)
    {
   		GetPlayerHealth(playerid,Info[playerid][pVida]);
    	GetPlayerArmour(playerid,Info[playerid][pChaleco]);
        if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING)
        {
            GetPlayerPos(playerid,Info[playerid][pPosicion][0],Info[playerid][pPosicion][1],Info[playerid][pPosicion][2]);
            GetPlayerFacingAngle(playerid, Info[playerid][pFAngle]);
            Info[playerid][pInterior] = GetPlayerInterior(playerid);
        	Info[playerid][pVirtualWorld] = GetPlayerVirtualWorld(playerid);
        }
        Info[playerid][pDinero] = GetPlayerCash(playerid);
		new tmp[2048];
		mysql_format(handle, tmp, sizeof(tmp),
		"UPDATE 'usuarios'\
	 	SET \
		`pContrasena` = '%d',\
		`pPosX` = '%f',\
	        `pPosY` = '%f',\
		`pPosZ` = '%f',\
	        `pMySQLID` = '%d',\
		`pVirtualWorld` = '%d',\
		`pInterior` = '%d',\
		`pVida` = '%f',\
		`pChaleco` = '%f',\
		`pDinero` = '%d',\
		`pSkin` = '%d',\
		`pFAngle` = '%f',\
		`pAdminZC` = '%d',\
		`pNacimiento` = '%s',\
		`pEstiloHablar` = '%d',\
		`pAcento` = '%d'\
		WHERE `pNombre` COLLATE latin1_general_cs = '%q'",
		Info[playerid][pContrasena],
		Info[playerid][pPosicion][0],
		Info[playerid][pPosicion][1],
		Info[playerid][pPosicion][2],
		Info[playerid][pMySQLID],
		Info[playerid][pVirtualWorld],
		Info[playerid][pInterior],
		Info[playerid][pVida],
		Info[playerid][pChaleco],
		Info[playerid][pDinero],
		Info[playerid][pSkin],
		Info[playerid][pFAngle],
		Info[playerid][pAdminZC],
		Info[playerid][pNacimiento],
		Info[playerid][pEstiloHablar],
		Info[playerid][pAcento],
		GetPlayerNameEx(playerid));
		mysql_query(handle, tmp);
		printf("Cuenta de %s guardada correctamente", GetPlayerNameEx(playerid));

    }
   	return 1;
}
Dato:
Ya lo probe en comandos, OnPlayerDisconnect, y en todos los malditos lados. Simplemente, no se modifica nada de la DB..
El printf si es ejecutado.
Reply
#5

y si revisas el mysql_log y te ahorras la quema de neuronas?
Reply
#6

Quote:
Originally Posted by aoEXE
Посмотреть сообщение
y si revisas el mysql_log y te ahorras la quema de neuronas?
Ya se me acabaron hace varios dнas cuando metн el plugin a mi PC


No hay nada fuera de lo normal en mysql_log.
Asн a lo random supongo que es cosa de como esta escrito el texto...porque sigo sin entender como me anda cuando pongo el format en una ъnica linea, y no en varias(con sus respectivos sнmbolos de seguimiento y demбs)
Ya probй hasta usando strcat por cada fila de la DB, y es lo mismo que la nada.
Reply
#7

Por quй para el nombre de la tabla utilizas comillas normales (') en vez de las otras (`) ?
Reply
#8

Quote:
Originally Posted by mcreed
Посмотреть сообщение
Por quй para el nombre de la tabla utilizas comillas normales (') en vez de las otras (`) ?
Oops


Ahora si funciona, gracias jej.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)