[Ajuda] MYSQL pq!?
#1

A base era essa:
pawn Код:
stock MySQL_SAVE(playerid)
{
    new query[128];
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    mysql_format(g_Write, query, sizeof(query), "UPDATE accounts SET PosX = %f, PosY = %f, PosZ = %f WHERE UserID = %d", x, y, z, pInfo[playerid][UserID]);
    mysql_pquery(g_Write, query);
    return 1;
}
Ta compilando certinho, agora qnd eu coloco meus dados da erro
Como arrumo essa parada?

pawn Код:
mysql_format(g_Write, query, sizeof(query), "UPDATE accounts SET Username = %s, Senha = %s, IP = %s, scorelevel = %d, maconha = %d, sementes = %d, BPsize = %d, wanted = %d, moneybag = %d, COPskills = %d, CRIMINALskills = %d, PARAMEDICskills = %d, admin = %d, money = %d, bank = %d, kills = %d, deaths = %d, DP = %d, VIP = %d, fmembro = %d, fcargo = %d, preso = %d, presotime = %d, startVIPdia = %d, startVIPmes = %d, startVIPano = %d, carid = %d, carpos0 = %f, carpos1 = %f, carpos2 = %f, carpos3 = %f, spawnpoint = %d, housekey = %d, idiom = %d, tutorial = %d, banned = %d, leftBANdia = %d, leftBANmes = %d, leftBANano = %d WHERE UserID = %d", PlayerName(playerid), Senha[playerid], IP[playerid], scorelevel[playerid], maconha[playerid], sementes[playerid], BPsize[playerid], wanted[playerid], moneybag[playerid], COPskills[playerid], CRIMINALskills[playerid], PARAMEDICskills[playerid], admin[playerid], money[playerid], bank[playerid], kills[playerid], deaths[playerid], DP[playerid], VIP[playerid], fmembro[playerid], fcargo[playerid], preso[playerid], presotime[playerid], startVIPdia[playerid], startVIPmes[playerid], startVIPano[playerid], carid[playerid], carpos[playerid][0], carpos[playerid][1], carpos[playerid][2], carpos[playerid][3], spawnpoint[playerid], housekey[playerid], idiom[playerid], tutorial[playerid], banned[playerid], leftBANdia[playerid], leftBANmes[playerid], leftBANano[playerid] , pInfo[playerid][UserID]);
pawn Код:
error 075: input line too long (after substitutions)
error 037: invalid string (possibly non-terminated string)
error 017: undefined symbol "UPDATE"
error 017: undefined symbol "accounts"
 fatal error 107: too many error messages on one line
PArece que o texto ficou mt grande alguem pode dividir isso pra mim na sitaxe certa se for isso?
E me dizer pq acontece isso?
Reply
#2

Se nгo me engano, em comandos SQL, precisa de colocar aspas simples nas especificaзхes ou nos valores.
Tente colocar aspas em cada %d, exemplo:

pawn Код:
UPDATE accounts SET Username = '%s', Senha = '%s', IP = '%s', ...
Se nгo, tente em cada especificaзгo, exemplo:

pawn Код:
UPDATE 'accounts' SET Username = %s, Senha = %s, IP = %s, ...
Caso nгo dк certo, tente em ambas:

pawn Код:
UPDATE 'accounts' SET Username = '%s', Senha = '%s', IP = '%s', ...
Reply
#3

@jovinon
Nгo й isso o comando
pawn Код:
stock MySQL_SAVE(playerid)
{
    new query[128];
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    mysql_format(g_Write, query, sizeof(query), "UPDATE accounts SET PosX = %f, PosY = %f, PosZ = %f WHERE UserID = %d", x, y, z, pInfo[playerid][UserID]);
    mysql_pquery(g_Write, query);
    return 1;
}
Estб rodando de boa, nele nгo tem '%f' entre as variaveis!
Reply
#4

a linha tб mto grande formata a query em partes. faz assim

pawn Код:
new query[1024];
format(query, sizeof(query, "UPDATE accounts SET Username = %s, Senha = %s, IP = %s, scorelevel = %d, maconha = %d, sementes = %d, BPsize = %d, wanted = %d, moneybag = %d, COPskills = %d, CRIMINALskills = %d, PARAMEDICskills = %d, admin = %d, money = %d, bank = %d, kills = %d, deaths = %d, ",
    PlayerName(playerid), Senha[playerid], IP[playerid], scorelevel[playerid], maconha[playerid], sementes[playerid], BPsize[playerid], wanted[playerid], moneybag[playerid], COPskills[playerid], CRIMINALskills[playerid], PARAMEDICskills[playerid], admin[playerid], money[playerid], bank[playerid], kills[playerid], deaths[playerid]);
format(query, sizeof(query), "%sDP = %d, VIP = %d, fmembro = %d, fcargo = %d, preso = %d, presotime = %d, startVIPdia = %d, startVIPmes = %d, startVIPano = %d, carid = %d, carpos0 = %f, carpos1 = %f, carpos2 = %f, carpos3 = %f, spawnpoint = %d, housekey = %d, idiom = %d, tutorial = %d, banned = %d, leftBANdia = %d, leftBANmes = %d, leftBANano = %d WHERE UserID = %d",
    query, DP[playerid], VIP[playerid], fmembro[playerid], fcargo[playerid], preso[playerid], presotime[playerid], startVIPdia[playerid], startVIPmes[playerid], startVIPano[playerid], carid[playerid], carpos[playerid][0], carpos[playerid][1], carpos[playerid][2], carpos[playerid][3], spawnpoint[playerid], housekey[playerid], idiom[playerid], tutorial[playerid], banned[playerid], leftBANdia[playerid], leftBANmes[playerid], leftBANano[playerid] , pInfo[playerid][UserID]);
mysql_pquery(g_Write, query);
Reply
#5

[QUOTE=Skream;3316160]a linha tб mto grande formata a query em partes. faz assim

Tambйm pensei nisso tentei dividir e deu erros, tava esperando alguйm experiente me mostrar como dividir

Com o seu tambйm deu erros
pawn Код:
stock MySQL_SAVE(playerid) // 3886
{
    new query[1024];
    format(query, sizeof(query, "UPDATE accounts SET Username = %s, Senha = %s, IP = %s, scorelevel = %d, maconha = %d, sementes = %d, BPsize = %d, wanted = %d, moneybag = %d, COPskills = %d, CRIMINALskills = %d, PARAMEDICskills = %d, admin = %d, money = %d, bank = %d, kills = %d, deaths = %d, ",
    PlayerName(playerid), Senha[playerid], IP[playerid], scorelevel[playerid], maconha[playerid], sementes[playerid], BPsize[playerid], wanted[playerid], moneybag[playerid], COPskills[playerid], CRIMINALskills[playerid], PARAMEDICskills[playerid], admin[playerid], money[playerid], bank[playerid], kills[playerid], deaths[playerid]);
    format(query, sizeof(query), "%sDP = %d, VIP = %d, fmembro = %d, fcargo = %d, preso = %d, presotime = %d, startVIPdia = %d, startVIPmes = %d, startVIPano = %d, carid = %d, carpos0 = %f, carpos1 = %f, carpos2 = %f, carpos3 = %f, spawnpoint = %d, housekey = %d, idiom = %d, tutorial = %d, banned = %d, leftBANdia = %d, leftBANmes = %d, leftBANano = %d WHERE UserID = %d",
    query, DP[playerid], VIP[playerid], fmembro[playerid], fcargo[playerid], preso[playerid], presotime[playerid], startVIPdia[playerid], startVIPmes[playerid], startVIPano[playerid], carid[playerid], carpos[playerid][0], carpos[playerid][1], carpos[playerid][2], carpos[playerid][3], spawnpoint[playerid], housekey[playerid], idiom[playerid], tutorial[playerid], banned[playerid], leftBANdia[playerid], leftBANmes[playerid], leftBANano[playerid] , pInfo[playerid][UserID]);
    mysql_pquery(g_Write, query);
    return 1;
} // 3895
Erros
pawn Код:
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3889) : error 001: expected token: ")", but found ","
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : warning 215: expression has no effect
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : error 001: expected token: ";", but found "]"
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : error 029: invalid expression, assumed zero
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : warning 215: expression has no effect
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : error 001: expected token: ";", but found "]"
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


5 Errors.
Coloquei as linhas lб do inicio e do fim!
Reply
#6

pawn Код:
stock MySQL_SAVE(playerid) // 3886
{
    new query[1024];
    format(query, sizeof(query, "UPDATE accounts SET Username = %s, Senha = %s, IP = %s, scorelevel = %d, maconha = %d, sementes = %d, BPsize = %d, wanted = %d, moneybag = %d, COPskills = %d, CRIMINALskills = %d, PARAMEDICskills = %d, admin = %d, money = %d, bank = %d, kills = %d, deaths = %d, ", \
        PlayerName(playerid), Senha[playerid], IP[playerid], scorelevel[playerid], maconha[playerid], sementes[playerid], BPsize[playerid], wanted[playerid], moneybag[playerid], COPskills[playerid], CRIMINALskills[playerid], PARAMEDICskills[playerid], admin[playerid], money[playerid], bank[playerid], kills[playerid], deaths[playerid]);
    format(query, sizeof(query), "%sDP = %d, VIP = %d, fmembro = %d, fcargo = %d, preso = %d, presotime = %d, startVIPdia = %d, startVIPmes = %d, startVIPano = %d, carid = %d, carpos0 = %f, carpos1 = %f, carpos2 = %f, carpos3 = %f, spawnpoint = %d, housekey = %d, idiom = %d, tutorial = %d, banned = %d, leftBANdia = %d, leftBANmes = %d, leftBANano = %d WHERE UserID = %d", \
        query, DP[playerid], VIP[playerid], fmembro[playerid], fcargo[playerid], preso[playerid], presotime[playerid], startVIPdia[playerid], startVIPmes[playerid], startVIPano[playerid], carid[playerid], carpos[playerid][0], carpos[playerid][1], carpos[playerid][2], carpos[playerid][3], spawnpoint[playerid], housekey[playerid], idiom[playerid], tutorial[playerid], banned[playerid], leftBANdia[playerid], leftBANmes[playerid], leftBANano[playerid] , pInfo[playerid][UserID]);
    mysql_pquery(g_Write, query);
    return 1;
} // 3895
Desde do momento que a funзгo precisa de 2 ou mais linhas, tens de adicionar o \, este irб dizer ao compilador que a funзгo continua na linha seguinte.
Reply
#7

Quote:
Originally Posted by GWMPT
Посмотреть сообщение
pawn Код:
stock MySQL_SAVE(playerid) // 3886
{
    new query[1024];
    format(query, sizeof(query, "UPDATE accounts SET Username = %s, Senha = %s, IP = %s, scorelevel = %d, maconha = %d, sementes = %d, BPsize = %d, wanted = %d, moneybag = %d, COPskills = %d, CRIMINALskills = %d, PARAMEDICskills = %d, admin = %d, money = %d, bank = %d, kills = %d, deaths = %d, ", \
        PlayerName(playerid), Senha[playerid], IP[playerid], scorelevel[playerid], maconha[playerid], sementes[playerid], BPsize[playerid], wanted[playerid], moneybag[playerid], COPskills[playerid], CRIMINALskills[playerid], PARAMEDICskills[playerid], admin[playerid], money[playerid], bank[playerid], kills[playerid], deaths[playerid]);
    format(query, sizeof(query), "%sDP = %d, VIP = %d, fmembro = %d, fcargo = %d, preso = %d, presotime = %d, startVIPdia = %d, startVIPmes = %d, startVIPano = %d, carid = %d, carpos0 = %f, carpos1 = %f, carpos2 = %f, carpos3 = %f, spawnpoint = %d, housekey = %d, idiom = %d, tutorial = %d, banned = %d, leftBANdia = %d, leftBANmes = %d, leftBANano = %d WHERE UserID = %d", \
        query, DP[playerid], VIP[playerid], fmembro[playerid], fcargo[playerid], preso[playerid], presotime[playerid], startVIPdia[playerid], startVIPmes[playerid], startVIPano[playerid], carid[playerid], carpos[playerid][0], carpos[playerid][1], carpos[playerid][2], carpos[playerid][3], spawnpoint[playerid], housekey[playerid], idiom[playerid], tutorial[playerid], banned[playerid], leftBANdia[playerid], leftBANmes[playerid], leftBANano[playerid] , pInfo[playerid][UserID]);
    mysql_pquery(g_Write, query);
    return 1;
} // 3895
Desde do momento que a funзгo precisa de 2 ou mais linhas, tens de adicionar o \, este irб dizer ao compilador que a funзгo continua na linha seguinte.
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3889) : error 075: input line too long (after substitutions)
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : error 001: expected token: ")", but found ","
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : warning 215: expression has no effect
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : error 001: expected token: ";", but found "]"
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : error 029: invalid expression, assumed zero
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


5 Errors.
Reply
#8

Quote:
Originally Posted by maikons
Посмотреть сообщение
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3889) : error 075: input line too long (after substitutions)
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : error 001: expected token: ")", but found ","
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : warning 215: expression has no effect
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : error 001: expected token: ";", but found "]"
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : error 029: invalid expression, assumed zero
C:\Users\maikonsantos\Desktop\SAMP SERVER\gamemodes\copandrobbers.pwn(3890) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


5 Errors.
pawn Код:
new query[1024];
format(query, sizeof(query), "UPDATE accounts SET Username = %s, Senha = %s, IP = %s, scorelevel = %d, maconha = %d, sementes = %d, BPsize = %d, wanted = %d, moneybag = %d, COPskills = %d, CRIMINALskills = %d, PARAMEDICskills = %d, admin = %d, money = %d, bank = %d, kills = %d, deaths = %d, ",
    PlayerName(playerid), Senha[playerid], IP[playerid], scorelevel[playerid], maconha[playerid], sementes[playerid], BPsize[playerid], wanted[playerid], moneybag[playerid], COPskills[playerid], CRIMINALskills[playerid], PARAMEDICskills[playerid], admin[playerid], money[playerid], bank[playerid], kills[playerid], deaths[playerid]);
format(query, sizeof(query), "%sDP = %d, VIP = %d, fmembro = %d, fcargo = %d, preso = %d, presotime = %d, startVIPdia = %d, startVIPmes = %d, startVIPano = %d, carid = %d, carpos0 = %f, carpos1 = %f, carpos2 = %f, carpos3 = %f, spawnpoint = %d, housekey = %d, idiom = %d, tutorial = %d, banned = %d, leftBANdia = %d, leftBANmes = %d, leftBANano = %d WHERE UserID = %d",
    query, DP[playerid], VIP[playerid], fmembro[playerid], fcargo[playerid], preso[playerid], presotime[playerid], startVIPdia[playerid], startVIPmes[playerid], startVIPano[playerid], carid[playerid], carpos[playerid][0], carpos[playerid][1], carpos[playerid][2], carpos[playerid][3], spawnpoint[playerid], housekey[playerid], idiom[playerid], tutorial[playerid], banned[playerid], leftBANdia[playerid], leftBANmes[playerid], leftBANano[playerid] , pInfo[playerid][UserID]);
mysql_pquery(g_Write, query);
Reply
#9

Compilou sem erros, mas na hora que desloga o player
[18:51:29] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Maikon_Santos, IP = 255.255.255.255, scorelevel = 0, maconha = 0, sementes = 0, BPsi' at line 1
Reply
#10

As strings no query tкm de ter uma aspa(') antes e depois do formato.
Exemplo:
pawn Код:
'%s'
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)