LINUX.ORG.RU
ФорумAdmin

проблемы толи с mysql толи с php


0

0

Прива всем.Есть пара вопросов. Вопрос 1. Проблема:скрипт написанный на php не ищит русские буквы в базе mysql(вернее ищет но ничего схожего ненаходит) хотя на другом сервере все работает и скрипт тотже и база таже(дамп базы).Все работало на mysql 4.0.20 а сейчас на 4.1.14 не хочет.Хотя с английскими буквами в поиске все в порядке. Имею: locale LANG=ru_RU.KOI8-R LC_CTYPE="ru_RU.KOI8-R" LC_NUMERIC="ru_RU.KOI8-R" LC_TIME="ru_RU.KOI8-R" LC_COLLATE="ru_RU.KOI8-R" LC_MONETARY="ru_RU.KOI8-R" LC_MESSAGES="ru_RU.KOI8-R" LC_PAPER="ru_RU.KOI8-R" LC_NAME="ru_RU.KOI8-R" LC_ADDRESS="ru_RU.KOI8-R" LC_TELEPHONE="ru_RU.KOI8-R" LC_MEASUREMENT="ru_RU.KOI8-R" LC_IDENTIFICATION="ru_RU.KOI8-R" LC_ALL=ru_RU.KOI8-R

mysqld Ver 4.1.14-log for pc-linux-gnu on x86_64 PHP 4.4.0 Apache/2.0.54 Конфиги: apache.conf кодировка тоже koi8-r my.cnf [mysqld] character-set-server = koi8r default-character-set = koi8r [client] default-character-set = koi8r character-sets-dir=/usr/share/mysql/charsets [mysql] default-character-set=koi8r [mysqldump] character-sets-dir=koi8r default-character-set=koi8r короче всё выставил на koi8r. php.ini default_charset = "koi8-r"

в логах к mysql пишет что запрос выполняется в koi8r (так как из-под консоли могу просмотреть в запросе русские буквы) mysql.sql 051126 1:38:24 16 Connect root@localhost on 16 Init DB spravka 16 Query CREATE TEMPORARY TABLE tmp SELECT * from work1 where gid regexp '1[0-9]*' 16 Query SELECT gid, name, prim, telm, telg, match (gid,name,prim,telm,telg) against ('.про*.......'IN BOOLEAN MODE) AS come FROM tmp WHERE match (gid,name,prim,telm,telg) against ('.про*.......'IN BOOLEAN MODE) order by come desc 16 Query SELECT gid, name, prim, telm, telg, match (gid,name,prim,telm,telg) against ('.про*.......'IN BOOLEAN MODE) AS come FROM tmp WHERE match (gid,name,prim,telm,telg) against ('.про*.......'IN BOOLEAN MODE) order by come desc LIMIT 0,20 16 Query SELECT pdr, gid FROM work2 ORDER BY num 16 Quit вот на такой запрос выводит что ничего нету хотя записи в базе есть.а на такой же самый запрос обрабатывает и выводит все как надо если использовать английские буквы.(тоесть записи с английскими словами тоже присутствуют в базе.)

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

051126 1:37:24 12 Connect root@localhost on 12 Query SET NAMES utf8(вот эти строчуи меня пугают мож чтото не то-как мне кажется с кодиторвкой) 12 Query SET collation_connection = 'koi8r_general_ci' 12 Query SET CHARACTER SET utf8 (вот эти строчуи меня пугают мож чтото не то-как мне кажется с кодиторвкой) 12 Query SET collation_connection = 'koi8r_general_ci'

вопрос 2. как мне выставить кодировку на стоторе клиента и на стороне сервера в koi8-r ????

anonymous

Re: проблемы толи с mysql толи с php

простите за переносы вот понормальному.
Прива всем.Есть пара вопросов.
Вопрос 1.
Проблема:скрипт написанный на php не ищит русские буквы в базе mysql(вернее ищет но ничего схожего ненаходит) хотя на другом сервере все работает и скрипт тотже и база таже(дамп базы).Все работало на mysql 4.0.20 а сейчас на 4.1.14 не хочет.Хотя с английскими буквами в поиске все в порядке.
Имею:
locale
LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_PAPER="ru_RU.KOI8-R"
LC_NAME="ru_RU.KOI8-R"
LC_ADDRESS="ru_RU.KOI8-R"
LC_TELEPHONE="ru_RU.KOI8-R"
LC_MEASUREMENT="ru_RU.KOI8-R"
LC_IDENTIFICATION="ru_RU.KOI8-R"
LC_ALL=ru_RU.KOI8-R

mysqld Ver 4.1.14-log for pc-linux-gnu on x86_64
PHP 4.4.0
Apache/2.0.54
Конфиги:
apache.conf
кодировка тоже koi8-r
my.cnf
[mysqld]
character-set-server = koi8r
default-character-set = koi8r
[client]
default-character-set = koi8r
character-sets-dir=/usr/share/mysql/charsets
[mysql]
default-character-set=koi8r
[mysqldump]
character-sets-dir=koi8r
default-character-set=koi8r
короче всё выставил на koi8r.
php.ini
default_charset = "koi8-r"

в логах к mysql пишет что запрос выполняется в koi8r (так как из-под консоли могу просмотреть в запросе русские буквы)
mysql.sql
051126 1:38:24 16 Connect root@localhost on
16 Init DB spravka
16 Query CREATE TEMPORARY TABLE tmp SELECT * from work1 where gid regexp '1[0-9]*'
16 Query SELECT gid, name, prim, telm, telg, match (gid,name,prim,telm,telg) against ('.про*.......'IN BOOLEAN MODE) AS come FROM tmp WHERE match (gid,name,prim,telm,telg) against ('.про*.......'IN BOOLEAN MODE) order by come desc
16 Query SELECT gid, name, prim, telm, telg, match (gid,name,prim,telm,telg) against ('.про*.......'IN BOOLEAN MODE) AS come FROM tmp WHERE match (gid,name,prim,telm,telg) against ('.про*.......'IN BOOLEAN MODE) order by come desc LIMIT 0,20
16 Query SELECT pdr, gid FROM work2 ORDER BY num
16 Quit
вот на такой запрос выводит что ничего нету хотя записи в базе есть.а на такой же самый запрос обрабатывает и выводит все как надо если использовать английские буквы.(тоесть записи с английскими словами тоже присутствуют в базе.)



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

051126 1:37:24 12 Connect root@localhost on
12 Query SET NAMES utf8(вот эти строчуи меня пугают мож чтото не то-как мне кажется с кодиторвкой)
12 Query SET collation_connection = 'koi8r_general_ci'
12 Query SET CHARACTER SET utf8 (вот эти строчуи меня пугают мож чтото не то-как мне кажется с кодиторвкой)
12 Query SET collation_connection = 'koi8r_general_ci'

вопрос 2.
как мне выставить кодировку на стоторе клиента и на стороне сервера в koi8-r ????

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.