Проблема с mysql
#1

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);
    }

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

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

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

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

?
Reply
#3

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

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

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

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)

Вот что пишет
Reply
#5

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

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

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


Forum Jump:


Users browsing this thread: 2 Guest(s)