Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

IPS Driver Error 'ORDER BY DESC LIMIT'


rot

Rekomendowane odpowiedzi

Witam,

 

Po przeniesieniu forum na nowy hosting mam "IPS Driver Error" a w logu:

 

 Date: Fri, 29 Nov 2013 15:14:41 +0100
 Error Number: 1064
 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 'DESC LIMIT 0,1' at line 1
 IP Address: xxx.xxx.xxx.xxx
 Page: /index.php?s=ba7ecba2a1c24e34c02d84e9366e3bb1&showtopic=318&view=getlastpost
 mySQL query error: SELECT pid FROM ipb_posts WHERE topic_id=318 AND queued=0 ORDER BY  DESC LIMIT 0,1

 

Przy okazji posypał się charset, w meta jest iso-8859-1 a strona prawidłowo wyświetla się jak w przeglądarce przestawie na utf-8.

 

Wersja to prawdopodobnie 2.3.6, taką mam ostatnią wercje w resources/version_history.php

 

Będzę wdzięczny za pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Dodatkowo pojawiają się błędy:

 

IPB WARNING [2] Division by zero (Line: 4178 of /sources/ipsclass.php)
IPB WARNING [2] Division by zero (Line: 1981 of /sources/action_public/topics.php)
IPB WARNING [2] Division by zero (Line: 1983 of /sources/action_public/topics.php)

 

dlatego że ipsclass->vars['display_max_posts'] jest równe 0 ale dlaczego jest równe zero to nie wiem.

Odnośnik do komentarza
Udostępnij na innych stronach

Sprawa dzielenia przez zero:

Nie podałeś żadnych bardziej konkretnych szczegółów więc jako tymczasowe rozwiązanie możesz rozważyć:

if($this->ipsclass->vars['display_max_posts'] > 0)

Kodowanie możesz zmienić w:

Tools & Settings :a: General Configuration :a: Document character set

 

 

Jeżeli chodzi o Driver Error:

Plik sources\action_public\topics.php

 

Znajdź:

		$this->ipsclass->DB->simple_construct( array( 'select' => 'pid',
													  'from'   => 'posts',
													  'where'  => "topic_id=".$this->topic['tid'] . $query_extra,
													  'order'  => $this->ipsclass->vars['post_order_column'].' DESC',
													  'limit'  => array( 0,1 )
											 )      );

Zamień na:

		$this->ipsclass->DB->simple_construct( array( 'select' => 'pid',
													  'from'   => 'posts',
													  'where'  => "topic_id=".$this->topic['tid'] . $query_extra,
													  'order'  => (!empty($this->ipsclass->vars['post_order_column']) ? $this->ipsclass->vars['post_order_column'] : 'pid') .' DESC',
													  'limit'  => array( 0,1 )
											 )      );
Odnośnik do komentarza
Udostępnij na innych stronach

Dzieki za pomoc, problem jest już rozwiązany.

 

Wreszcie znalazłem gdzie włączyć error_reporting co pozwoliło mi na jaką kolwiek diagnostykę:
init.php:187  define( 'CUSTOM_ERROR', 0 );

 

Wszystko zaczynało sie od:

PHP Notice:  unserialize(): Unexpected end of serialized data in sources/ipsclass.php on line 682

 

Poprosiłem admina forum o zrebudowanie cache w panelu i problem ustąpił.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.