*

Spido

  • *
  • 1634

Ошибка 1064 в SQL запросе

Если вы получили сообщение об ошибке 1064, в то время как создавали/изменяли базу данных MySQL 4.1.xx, работая как Admin, вы, вероятно, получите такое сообщение:

Цитировать
1064 - У вас ошибка в запросе; обратитесь к руководству, которая соответствует вашей версии сервера MySQL на предмет корректного синтаксиса для использования рядом с "-20, 20 'в строке 1
 
затем что-то вроде:

 
Цитировать
Выберите manufacturers_id, manufacturers_name, manufacturers_image, date_added, LAST_MODIFIED от порядка производителей по manufacturers_name предел -20, +20

 или

 
Цитировать
Выберите banners_id, banners_title, banners_image, banners_group, статус, expires_date, expires_impressions, date_status_change, date_scheduled, date_added с тем знамена banners_title, banners_group предел -20, +20

 записи об ошибке появятся в зависимости от записей таблиц, которые вы удалили.

 Чтобы это исправить:

 В admin/includes/classes найти split_page_results.php и найдите строки:

$offset = ($max_rows_per_page * ($current_page_number - 1));
$sql_query .= " limit " . $offset . ", " . $max_rows_per_page;

замените на:

$offset = ($max_rows_per_page * ($current_page_number - 1));
  if ($offset < 0)
        {
        $offset = 0;
        }
$sql_query .= " limit " . $offset . ", " . $max_rows_per_page;

MySQL 4.1.xx обрабатывает отрицания правильно, вызывая ошибку в коде выше, в отличие от более ранних версий MySQL.

Делайте изменения в catalog/includes/classes/split_page_results.php только тогда, когда ошибка продолжает возникать и вышеописанные изменения не помогли. В других случая, изменения делать не следует.

Найдите строки:

$this->sql_query .= " limit " . $offset . ", " . $this->number_of_rows_per_page;
замените на:

$this->sql_query .= " limit " . max($offset, 0) . ", " . $this->number_of_rows_per_page;
Теперь всё должно работать.

Если вам помогли, то не стесняйтесь отблагодарить донатом:

Добрый день,
Возникла ошибка 1064, попробовал изменить как написали, но ничего не происходит. Вот что пишет:

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 '-0, MAX_ROW_LISTS_OPTIONS' at line 1

select * from products_options where language_id = '4' order by products_options_id limit -0, MAX_ROW_LISTS_OPTIONS

[TEP STOP]

HEADING_TITLE_OPT

Warning: Division by zero in /split_page_results.php on line 33

Warning: Division by zero in /split_page_results.php on line 47


Что еще можно сделать, чтобы убрать эту ошибку? Может быть перезаписать файл split_page_results.php заново? А то никак опции товара не редактируются, и характеристики товара клиенту не видны
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)

Могу посоветовать  проверить стор на наличие ошибок, то есть ето поможет определить где і что делать в первую очередь. Мне с MySQL несколько раз помогало і не только, но так как я не очень разбираюсь технически , то проверяю сайт на  і направлю отчет своему программисту - так значительно быстрее получается решить проблему.  Но один нюанс - сервис на английском

« Последнее редактирование: 13 Мар 2018 03:06:16 am от Spido »