To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

Bazy danych SQL - [Problem] Odbuduj Search

kamilko - 07-07-2007, 12:20
Temat postu: [Problem] Odbuduj Search
Witam,
Gdy chce odbudować Search wyskakuje mi błąd:
Kod:
Błąd Ogólny
Could not insert new word matches

DEBUG MODE

SQL Error : 1271 Illegal mix of collations for operation ' IN '

INSERT INTO phpbb_search_wordmatch (post_id, word_id, title_match) SELECT 10328, word_id, 2 FROM phpbb_search_wordlist WHERE word_text IN ('nie', 'jest', 'dzwonek', 'tylko', 'ktos', 'dzwoni', 'czarka', 'może', 'stare', 'ale', 'śnieszne')

Line : 265
File : functions_search.php


[ Dodano: 09-07-2007, 16:36 ]
spr. chceck files i optymalizacja nic nie daje
Kod:
REPAIR TABLE `phpbb_search_wordlist` , `phpbb_search_wordmatch`
OPTIMIZE TABLE `phpbb_search_wordlist` , `phpbb_search_wordmatch`

i nic

sniper89 - 13-09-2007, 15:49

W końcu, po długich bojach, udało mi się tego dokonać.

W db/mysql4.php (teoretycznie powinno pomóc samo "SET NAMES", ale najwyraźniej skrypt usuwa i tworzy nowe tabele o domyślnym kodowaniu używanym przez bazę więc potrzeba i "SET CHARSET"):
Kod:
    //
    // Constructor
    //
    function sql_db($sqlserver, $sqluser, $sqlpassword, $database, $persistency = true)
    {
        $this->persistency = $persistency;
        $this->user = $sqluser;
        $this->password = $sqlpassword;
        $this->server = $sqlserver;
        $this->dbname = $database;

        $this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server, $this->user, $this->password) : mysql_connect($this->server, $this->user, $this->password);

        if( $this->db_connect_id )
        {
      mysql_query('SET NAMES \'latin2\'');
      mysql_query('SET CHARSET latin2');

gdzie latin2 to Twoje kodowanie.

Później "Odbudowujesz Search", wchodzisz do phpMyAdmina i zmieniasz kodowanie tabel phpbb_search_* na to, którego używasz (w moim przypadku latin2_general_ci), a później także kolumn tych tabel (ważne!!!, zwróć także uwagę na to, że jedna z kolumn ma kodowanie latin2_bin, a nie latin2_general_ci, lub odpowiednio inną *_bin). Następnie usuwasz linijkę
Kod:
mysql_query('SET CHARSET latin2');

z mysql4.php i voila! :)



Powered by phpBB modified by Przemo © 2003 phpBB Group