Advanced search  

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Pages: [1] 2   Go Down

Author Topic: MySQL server version for the right syntax to use near '-1' at line 1  (Read 20902 times)

0 Members and 1 Guest are viewing this topic.

Zevs

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 26

После переезда, при попытке просмотра фоток из раздела случайные фото, получаю ошибку

Quote
While executing query "SELECT * FROM galpictures WHERE approved = 'YES'  ORDER BY RAND() LIMIT -1" on 0

mySQL error: 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 '-1' at line 1

Информация о хостинге:

Quote
==========================
VERSION INFO :
------------------
PHP version: 4.4.6 - OK
------------------
mySQL version: 4.1.22-log
------------------
Coppermine version: 1.4.13(stable)
==========================
Module: GD
------------------
GD Version: bundled (2.0.28 compatible)
FreeType Support: 1
FreeType Linkage: with freetype
T1Lib Support: 1
GIF Read Support: 1
GIF Create Support: 1
JPG Support: 1
PNG Support: 1
WBMP Support: 1
XBM Support: 1
JIS-mapped Japanese Font Support:

==========================
Module: mysql
------------------
MySQL Supportenabled
Active Persistent Links 0
Active Links 1
Client API version 5.0.37
MYSQL_MODULE_TYPE none
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_INCLUDE no value
MYSQL_LIBS no value
==========================
Module: zlib
------------------
ZLib Support enabled
Compiled Version 1.2.3
Linked Version 1.2.3
==========================
Server restrictions (safe mode)?
------------------
Directive | Local Value | Master Value
safe_mode | On | On
safe_mode_exec_dir | /sata1/home/:/usr/bin/:/usr/local/bin/ | ./
safe_mode_gid | Off | Off
safe_mode_include_dir | /sata1/home/:.:/usr/local/share/pear/ | ./:/usr/local/share/pear/
safe_mode_exec_dir | /sata1/home/:/usr/bin/:/usr/local/bin/ | ./
sql.safe_mode | Off | Off
disable_functions | no value | no value
file_uploads | On | On
include_path | ./:/usr/local/share/pear/ | ./:/usr/local/share/pear/
open_basedir | /tmp/:/tmp:/sata1/home/users/loganclub/ | no value
==========================
email
------------------
Directive | Local Value | Master Value
sendmail_from | no value | no value
sendmail_path | /usr/sbin/sendmail -t -i  | /usr/sbin/sendmail -t -i
SMTP | localhost | localhost
smtp_port | 25 | 25
==========================
Size and Time
------------------
Directive | Local Value | Master Value
max_execution_time | 180 | 600
max_input_time | 60 | 60
upload_max_filesize | 5M | 5M
post_max_size | 6M | 6M
==========================
Page generated in 2.637 seconds - 21 queries in 1.257 seconds - Album set : ; Meta set: ;

Ай нид хелп !!!! :(
« Last Edit: November 22, 2007, 11:17:49 am by Makc666 »
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

А на старом хосте какая версия MySQl была?
Возможно что проблема именно в этом.
Logged

Zevs

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 26

На старом была вроде 4.0.18-log. Но то, что другая - 100%.

Вопрос в другом - как запустить на этой версии ? где ковырнуть ?
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

ковырни код, проблема в том, что запрос пытается выбрать -1 запись, вместо 1.
правильный запрос SELECT * FROM galpictures WHERE approved = 'YES'  ORDER BY RAND() LIMIT 1
Logged

Zevs

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 26

У меня есть глюк в модуле случайного вывода - выдает ошибку. ругается на LIMIT -1
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

У меня 5й и все работает.
Посмотри откуда берется этот минус и убери его.
Logged

Zevs

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 26
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #6 on: December 04, 2007, 07:52:39 pm »

Что значит убери ? Я ж код сам не правил - если у меня он появляется - значит у всех должен. Или я не прав ?
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #7 on: December 05, 2007, 07:01:36 am »

Может и должен, но я галерею всегда только вручную обновляю и могу пропустить некритичные изменения в коде разных версий, потому у меня может и работает, а у тебя нет.
Собственно я начал не с этого, а с предложения посмотреть октуда он вообще берется!
Разберемся с причиной, найдем как устранить следствия.
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #8 on: December 05, 2007, 10:45:08 am »

Откуда он берется мы сказать может.

В файле:
functions.inc.php

Есть такая функция:
function get_pic_data

Code: [Select]
function get_pic_data($album, &$count, &$album_name, $limit1=-1, $limit2=-1, $set_caption = true)
В ней по умолчанию переменной $limit2 присваивается значение -1

Далее это значение попадает в строку:
$limit .= ($limit2 != -1) ? ' ,'. $limit2 : '';

Что означает, если переменная $limit2 не равна -1 , то переменная $limit2 равна значению, которое было передано в функцию function get_pic_data

А дальше эта переменная $limit2 попадает/используется в коде:

Если количество изображений больше 1000
if ($pic_count > 1000)

то используется код:
Code: [Select]
$result = cpg_db_query("SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE  randpos IN ($random_num_set) AND approved = 'YES' $ALBUM_SET ORDER BY RAND() LIMIT $limit2");
иначе, т.е. меньше 1000,
} else {

то используется код:
Code: [Select]
$query = "SELECT $select_columns FROM {$CONFIG['TABLE_PICTURES']} WHERE approved = 'YES' $META_ALBUM_SET ORDER BY RAND() LIMIT $limit2";
Соответственно к Вам, уважаемый вопрос, что у Вас сейчас прописано в
Конфиг -> Отображение списка альбомов -> Содержание главной страницы

Прям скопируйте нам оттуда всё строку...

P.S. У меня к Вам такая просьба...

В момент, когда у Вас данная ошибка воспроизводиться, пожалуйста:

В файле:
functions.inc.php

Пожалуйста, попробуйте заменить строку:
function get_pic_data($album, &$count, &$album_name, $limit1=-1, $limit2=-1, $set_caption = true)

на строку:
function get_pic_data($album, &$count, &$album_name, $limit1="-1", $limit2="-1", $set_caption = true)

И заменить строку:
$limit .= ($limit2 != -1) ? ' ,'. $limit2 : '';

на строку:
$limit .= ($limit2 != "-1") ? ' ,'. $limit2 : '';

И посмотрите, не исчезнет случайно эта ошибка или нет.
« Last Edit: December 05, 2007, 10:55:07 am by Makc666 »
Logged

Zevs

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 26
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #9 on: December 06, 2007, 10:20:28 am »

Спасибо за проявленный интерес и помощь в решении моей проблемы !!!

Теперь отвечаю на вопросы:
Содержание главной страницы - breadcrumb/catlist/alblist/random,2/lastup,2

Ошибка возникает в блоке рандом.

Строки в function.inc.php изменил - ничего не изменилось.

Подключаюсь к БД с помощью SQLylog  - пытаюсь вручную выполнить этот запрос. Так вот  - с минусом - всегда ошибка. И не важно, в кавычках -1 или нет.
Может кто-то прояснит - что означает именно -1 ?
LIMIT 1 понимаю - ограничить выборку одним значением - а минус один ?!  ???

Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #10 on: December 06, 2007, 11:55:32 am »

Да, проблема именно в этом, запрос пытается получить выборку из -1 элемента, что и приводит к ошибке.

Мне кажется теперь стоит попробовать изменить указанные строки просто убрав этот минус.
Logged

Zevs

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 26
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #11 on: December 06, 2007, 12:16:22 pm »

Что самое интересное - просто если заменить "-1" на "1" - ошибка вылазит уже в другом месте  - и тоже с -1. Т.е. нужно глобально переделывать.
Неужели ни у кого на MySQL 5  нету такой ?
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #12 on: December 06, 2007, 09:48:04 pm »

Что самое интересное - просто если заменить "-1" на "1" - ошибка вылазит уже в другом месте  - и тоже с -1. Т.е. нужно глобально переделывать.
Неужели ни у кого на MySQL 5  нету такой ?
Данная ошибка с MySQL не связана.

Данная ошибка связана конкретно с вашей конфигурацией машины и всего скорее с неверной обработкой php части кода. В php тоже ошибки бывают, который тоже исправляются.

Какой у Вас php версии?
Пробовали обновится до 5.2.5?
Нет ли у Вас какого-нибудь акселератора на сайте?
Какой у Вас SQL версии (чисто ради интереса)?

Файлы пробовали в автоматическом режиме на сайт заново перезаливать?
Logged

Zevs

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 26
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #13 on: December 14, 2007, 12:33:38 pm »

Отвечаю:

Operating system: FreeBSD
PHP: 5.2.4
Accelerator: N/A
Database  MySQL 5.0.45-log

обновлять ничего не могу - хостинг не мой.

Файлы перезаливать не пробовал. Перезалью - отпишусь
Logged

Zevs

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 26
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #14 on: January 31, 2008, 11:40:55 am »

Сегодня обновил галерею (т.е. перезалил все файлы) - проблема как была, так и осталась :(
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #15 on: January 31, 2008, 04:32:01 pm »

Сегодня обновил галерею (т.е. перезалил все файлы) - проблема как была, так и осталась :(
Всё таки я думаю что вам нужно
  • попробовать "обновить" php
  • попробовать установить чистую версию галереи и посмотреть, будет ли там такая же ошибка
Logged

Zevs

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 26
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #16 on: February 18, 2008, 04:10:08 pm »

Докладываю.
На чисто установленной галерее таких глюков нет. Может быть это может быть связано с содержимым галереи ? Какой-нибудь сдвиг ?
Случайно обнаружил, что нормально показывается только картинка с pos=-5. Остальные (например, -6 или -1)  - фиг - критическая ошибка.
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #17 on: February 19, 2008, 02:24:21 pm »

Докладываю.
На чисто установленной галерее таких глюков нет. Может быть это может быть связано с содержимым галереи ? Какой-нибудь сдвиг ?
Случайно обнаружил, что нормально показывается только картинка с pos=-5. Остальные (например, -6 или -1)  - фиг - критическая ошибка.
Чинить "старую" базу данных пробовали?
Logged

Zevs

  • Coppermine novice
  • *
  • Offline Offline
  • Posts: 26
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #18 on: February 19, 2008, 03:32:37 pm »

А есть какой-нибудь встроенный "чинильщик" или "пересчитывальщик" ?
Собственно база галереи и база форума  - одна на двоих (у меня интеграция с punbb)
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону
Re: MySQL server version for the right syntax to use near '-1' at line 1
« Reply #19 on: February 20, 2008, 07:17:15 am »

Встроенный чинильщик есть в PhpMyAdmin. Операции - проверить, оптимизировать, восстановить.
Logged
Pages: [1] 2   Go Up
 

Page created in 0.038 seconds with 15 queries.