SA-MP Forums Archive
Проблема с 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: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Проблема с mysql (/showthread.php?tid=346369)



Проблема с mysql - Hawkins - 28.05.2012

PHP код:
stock OnPlayerUpdateEx1(playerid)
{
    if(
GetPVarInt(playerid"IsAuthed") > 0)
    {
        new 
query[1500], str[100];
        
strcat(query"UPDATE players SET ");
        
format(strsizeof(str), "`Cars`=%d,`Posc_x`=%f,`Posc_y`='%f',`Posc_z`='%f',`Posc_a`='%f',`Color1`='%d',`Color2`='%d' WHERE name = '%s'"PlayerInfo[playerid][pCar], PlayerInfo[playerid][Posc_x], PlayerInfo[playerid][Posc_y], PlayerInfo[playerid][Posc_z], PlayerInfo[playerid][Posc_a], PlayerInfo[playerid][pColor1], PlayerInfo[playerid][pColor2], getpl(playerid)); strcat(querystr);
        if(!
mysql_query(query)) mysql_debug(1), mysql_query(query), mysql_debug(0);
    }

При дисконнекте значения в таблице не обновляются. В чем проблема?


Re: Проблема с mysql - eakwarp - 28.05.2012

Зачем так извращаться с запросом? Одним форматом религия обойтись не позволяла?

Почему такой разношерстный запрос?
Тут так `Posc_x`=%f
а тут так `Posc_z`='%f'

Что пишет дебаг, раз уж так извратились с ним.

?


Re: Проблема с mysql - eakwarp - 28.05.2012

И кроме:
new query[1500], str[100];

Первый массив слишком большой, второй слишком маленький.

Даже запрос без данных в формате занимает 110 символов, с данными все 200. Что вам мешало ограничится одним массивом на 255 символов и одним форматом - ума не приложу.


Re: Проблема с mysql - Hawkins - 28.05.2012

Quote:

[14:24:40] CMySQLHandler::Query(UPDATE players SET `Cars`=422,`Posc_x`=0.000000,`Posc_y`='0.000000',` Posc_z`='0.000000',`Posc_a`='0.000000',`Color1`=') - An error has occured. (Error ID: 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 ''' at line 1)

Вот что пишет


Re: Проблема с mysql - Stepashka - 28.05.2012

И ещё кое что:
pawn Код:
if(!mysql_query(query)) mysql_debug(1), mysql_query(query), mysql_debug(0);
Не пишите вы так, это не правильно!


Re: Проблема с mysql - Stepashka - 28.05.2012

Проблема с длиной строк, запрос отрезается на середине.


Re: Проблема с mysql - Hawkins - 28.05.2012

Увеличил str побольше. Теперь всё норм. Спасибо за ответ