Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16
  1. #1
    Аватар для (Wh)AnGeL
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.01.2014
    Сообщений
    26
    Репутация:
    0 ±

    Проблема с MySQL

    Добрый вечер.

    Случилась такая проблема: не полностью срабатывают запросы.

    Использую плагин версии r39-4

    Есть запрос вот такого типа:
    PHP код:
    new tquery[200];
    format(tquerysizeof(tquery), "SELECT * FROM `"TABLE_ACC"` WHERE `name` = '%s' AND `password` = '%s'"Player[playerid][pName], inputtext);
    mysql_tquery(1tquery"LoadAccount""is"playeridinputtext); 
    При его использовании я получаю вот такой вот результат:
    PHP код:
    [20:21:38] [DEBUGmysql_tquery connection1query"SELECT * FROM `users` WHERE `name` = 'Бухой_Ангелочек' AND `pass"callback"LoadAccount"format"is" 
    Соответственно можно подумать что не хватает ячеек для формата, но увы, я ставил и большие значения.

    Полный лог MySQL:
    PHP код:
     http://pastebin.com/1SiaZ2u8 
    p.s Интересный факт, на r31 запросы правильно проходят и логируются в логе полностью...

    Буду очень рад если кто-нибудь поможет с решением данной проблемы)
    skype-system.killer2

  2. #2
    Аватар для $continue$
    Заблокирован

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,466
    Репутация:
    265 ±
    Приветствую. Как понять не полностью? Как вы это поняли?

  3. #3
    Аватар для (Wh)AnGeL
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.01.2014
    Сообщений
    26
    Репутация:
    0 ±
    Ну вы видите какой запрос приходит в бд? Я спрашивал у знакомых и у всех запрос приходит целый, а не обрезанный.
    Да и из-за этого случается проблема с регистрацией аккаунта
    skype-system.killer2

  4. #4
    Аватар для $continue$
    Заблокирован

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,466
    Репутация:
    265 ±
    Эмм, заметил только что. Попробуй так:
    PHP код:
    static query[] = "SELECT * FROM `"TABLE_ACC"` WHERE `name` = '%s' AND `password` = '%s'";
    new 
    str[sizeof(query) - 30 MAX_PLAYER_NAME 1];
    format(strsizeof(str), queryPlayer[playerid][pName],  inputtext);
    mysql_function_query(/* подкючение к бд */str"LoadAccount""is"playeridinputtext); 
    Последний раз редактировалось $continue$; 19.03.2016 в 19:30.

  5. #5
    Аватар для (Wh)AnGeL
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.01.2014
    Сообщений
    26
    Репутация:
    0 ±
    Интересный результат...

    PHP код:
    [20:55:00] [DEBUGmysql_tquery connection1query"SELECT * FROM `users` WHERE `name` = 'Бухой_Ангелочек' AN"callback"LoadAccount"format"is"
    [20:55:00] [DEBUGCMySQLQuery::Execute[LoadAccount] - starting query execution
    [20:55:00] [ERRORCMySQLQuery::Execute[LoadAccount] - (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 'AN' at line 1
    [20:55:00] [DEBUGCMySQLQuery::Execute[LoadAccount] - error will be triggered in OnQueryError 
    skype-system.killer2

  6. #6
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Сообщений
    1,360
    Репутация:
    768 ±
    $continue$ неверно рассчитал размер массива. Запрос верный, необходимо верно рассчитать количество ячеек.

  7. #7
    Аватар для (Wh)AnGeL
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.01.2014
    Сообщений
    26
    Репутация:
    0 ±
    Просчитав ячейки получилось нечто подобное:
    PHP код:
    static query[] = "SELECT * FROM `"TABLE_ACC"` WHERE `name` = '%s' AND `password` = '%s'";
    new 
    str[sizeof(query)+MAX_PLAYER_NAME+30];
    format(strsizeof(str), queryPlayer[playerid][pName],  inputtext);
    mysql_tquery(1str"LoadAccount""is"playeridinputtext); 
    Но увы, результат не увенчался успехом:
    PHP код:
    [21:05:25] [DEBUGCMySQLResult::~CMySQLResult() - deconstructor called
    [21:05:29] [DEBUGmysql_tquery connection1query"SELECT * FROM `users` WHERE `name` = 'Бухой_Ангелочек' AND `pass"callback"LoadAccount"format"is"
    [21:05:29] [DEBUGCMySQLQuery::Execute[LoadAccount] - starting query execution
    [21:05:29] [DEBUGCMySQLQuery::Execute[LoadAccount] - query was successfully executed within 72.449 milliseconds 
    skype-system.killer2

  8. #8
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Сообщений
    1,360
    Репутация:
    768 ±
    От балды размер массива не нужно выставлять.

  9. Пользователь сказал cпасибо:
    VVWVV (19.03.2016)
  10. #9
    Аватар для (Wh)AnGeL
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.01.2014
    Сообщений
    26
    Репутация:
    0 ±
    Ну почему же от балды то?

    new str[sizeof(query)+MAX_PLAYER_NAME+30];
    Кол-во символов в запросе + ник + 30 символов под пароль.
    skype-system.killer2

  11. #10
    Аватар для $continue$
    Заблокирован

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,466
    Репутация:
    265 ±
    Бывает. Сам уже заметил. Обновил пост.
    Цитата Сообщение от Londlem Посмотреть сообщение
    $continue$ неверно рассчитал размер массива. Запрос верный, необходимо верно рассчитать количество ячеек.

 

 
Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •