Войти

Показать полную графическую версию : Ошибка база данных


Piratic
04-11-2006, 13:33
Ошибка база данных в vBulletin 3.6.0:

Invalid SQL:
select count(*) as newposts from post where dateline >= 03:04, 04.11.2006 and visible = 1;

Ошибка MySQL : 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 ':04, 04.11.2006 and visible = 1' at line 1
Номер ошибки : 1064
Дата : Saturday, November 4th 2006 @ 01:14:08 PM
Скрипт : http://unecha-un.jino-net.ru/forum/index.php

Имя класса : vB_Database

Помогите разобраться с проблемой!

dmitryst
04-11-2006, 14:57
select count(*) as newposts from post where dateline >= `03:04, 04.11.2006` and visible = 1;

А так?

Piratic
04-11-2006, 15:13
select count(*) as newposts from post where dateline >= `03:04, 04.11.2006` and visible = 1;


Дело в то что не очень сведом в знаниях баз данных, распишите пожалуйста поподробнее как устранить?

dmitryst
04-11-2006, 15:18
Piratic я ж написал, надо дату в обратные апострофы заключить (там, где "Ё" и "~"). Не поможет - будем дальше думать

Piratic
04-11-2006, 15:28
Выполнил SQL запрос на БД 1.

ERROR: Неправильный идентификатор @ 64 STR: 04.11. SQL: select count(*) as newposts from post where dateline >= 03:04, 04.11.2006 and visible = 1

Ответ MySQL: #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 ':04, 04.11.2006 and visible = 1' at line 1

Изменил запрос на БД 2.



Ответ MySQL: #1054 - Unknown column '03:04, 04.11.2006' in 'where clause'

dmitryst
04-11-2006, 15:37
PiraticАга, тогда меняем обратные апострофы на прямые ' (кнопка "кавычка")

Piratic
04-11-2006, 15:44
select count(*) as newposts from post where dateline >= "03:04, 04.11.2006" and visible = 1;
Ответ:
newposts 23

Вроде всё гладко.

Какие дальше действия предпринимать?

Ошибка произошла на форуме, после установки продукта

dmitryst
04-11-2006, 15:48
Piratic Вообще-то, я не кавычки советовал, а то, что на той клавише ;). Ну да ладно, прошло - и хорошо. Надо искать следующее место с такими же не к месту поставленными запятыми и точками.

Piratic
04-11-2006, 15:53
Форум вроде встал.:o


Огромное спасибоооооооооо :)

сейчас попробую переставить мод!

Piratic
04-11-2006, 16:13
Ситуация повторилась!

Вот нашёл код продукта, что тут не так?

$vbulletin->userinfo['newposts'] = $db->query_first("select count(*) as newposts from ".TABLE_PREFIX."post where dateline >= {$vbulletin->userinfo['lastvisit']} and visible = 1"); $vbulletin->userinfo['newposts'] = vb_number_format($vbulletin->userinfo['newposts']['newposts']); $vbulletin->userinfo['newthreads'] = $db->query_first("select count(*) as newthreads from ".TABLE_PREFIX."thread where dateline >= {$vbulletin->userinfo['lastvisit']} and visible = 1 and sticky in(0,1)"); $vbulletin->userinfo['newthreads'] = vb_number_format($vbulletin->userinfo['newthreads']['newthreads']); $vbulletin->userinfo['lastvisit'] = vbdate($vbulletin->options['timeformat'], $vbulletin->userinfo['lastvisit']) . ', ' . vbdate($vbulletin->options['dateformat'], $vbulletin->userinfo['lastvisit']); $exec_lastposts = $db->query_first("select count(*) as lastposts from ".TABLE_PREFIX."post where visible = 1 and dateline >= ".(TIMENOW - 86400)); $exec_lastposts = vb_number_format($exec_lastposts['lastposts']); $vbulletin->templatecache['FORUMHOME'] = str_replace('$navbar','$navbar ' . $vbulletin->templatecache[forumhome_welcomepanel],$vbulletin->templatecache['FORUMHOME']); }]]></phpcode> </plugin> </plugins>

dmitryst
04-11-2006, 16:14
PiraticОгромное спасибоооооооооо Не за что. Лучше нажмите "полезное сообщение" :). Шутка. Можно не нажимать.
Странно, что разработчики баг не пофиксили.

Piratic
04-11-2006, 18:52
На форум производителей я уже отписал о найденном баге. Пока молчат, тему можно закрывать!

pva
04-11-2006, 20:36
я в php мало понимаю, но чисто логически:
".TABLE_PREFIX."post where dateline >= '{$vbulletin->userinfo['lastvisit']}' and visible = 1");
и так далее, во всех местах

dmitryst
04-11-2006, 23:51
pva Да, что-то типа этого (я на perl-е пишу, там этого можно избежать сравнительно просто)




© OSzone.net 2001-2012