![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 2.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam takie zapytanie:
Używam go do wstępnej selekcji rekordów do przetworzenia przez mechanizm wyszukiwania w php. wersja MySQL: 5.0.22 wersje PHP: 4.3.7 oraz 4.4.2 sposób wywołania zapytania: adodb oraz przy pomocy funkcji mysql_* Zapytanie w każdej kombinacji powyższych wersji zwraca następujący błąd: 1139: Got error 'repetition-operator operand invalid' from regexp Dziwi mnie tylko fakt, ze takie samo zapytanie wklejone do phpMyAdmina (używającego tej samej wersji php co moje skrypty) działa bez problemu. Dodam że zapytanie nie zwracało błędów gdy nie używałem CONVERT ani COLLATE, ale wtedy nie wszystkie wyniki się znajdowały (dla bazy/tabel/pól ustawiona jest metoda porównywania znaków: latin2_general_ci). Czy ktoś spotkał się z tym problemem i wie jak go rozwiązać? pozdrawiam EDIT1: Naprawdę nikt nic o tym nie wie? Może ktos zna w takim razie inne forum na którym mógłbym się zapytać ... Ten post edytował code_berzerker 5.04.2007, 12:59:51 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 26.08.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Podaj 'CREATE TABLE' i kilka przykładowych INSERTów, ponieważ moje ograniczone testy nie wykazały żadnych problemów podobnych do Twoich.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 2.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
W/g moich testów problem nie ma nic wspólnego ze strukturą tabel (z komunikatu parsera regexp przekazanego przez mysql też to wynika). Wystąpi również przy braku złączenia. Zapytanie wywala się kiedy wyrażenie 'słowa kluczowe wyszukiwania' zawiera polskie litery (w szczególności dla "ł" - pewnie też dla innych które nie są wspólne dla latin1 i latin2).
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 26.08.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Ale człowiek jest leniwy, co widzisz na swoim przykładzie: nie chce mi się samemu tworzyć jakichś tabel i zapełniać przykładowymi danymi, a jak napisałem, u mnie podstawowa wersja działa. Tak samo jak Tobie nie chce się podać przykładu. U mnie działa, u Ciebie nie, więc to Twój problem, skoro nie planujesz się wysilić i jednak mi, czy komukolwiek innemu, nieco ułatwić.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 2.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Lenistwo to nadinterpretacja, poprostu przyjąłem, że skoro problem nie ma związku z danymi a jedynie z tym co się wpisze do regexpa, to zapytanie można wykonać na dowolnej tabeli (jednej, bo złączenie tez nie wpływa na błąd). Przyjąłem po cichu (może zbyt pochopnie), że każdy ma dostęp do jakiejś tabeli wypełnionej tekstami po polsku. Oto dump z tabeli
Uproszczone zapytanie sprawiające problem:
Przypomnę że SELECT działa bez problemu z phpMyAdmina, natomiast wywala sie ze wspomnianym błędem przy użyciu wewnątrz skryptu PHP. Pozdrawiam PS Zastanawiam się co PMA takiego robi, że nie omija problem. Ten post edytował code_berzerker 16.04.2007, 15:11:37 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 26.08.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
No to widzę pewien problem: mam na localhoście tylko PHP5, i tutaj na kilka sposobów działa wporzo. Mój przykładowy skrypt:
Żadnych problemów. Wersje softu na jakich chwilowo mogłem przetestować: Kod % php -v
PHP 5.2.1 (cli) (built: Feb 20 2007 19:10:04) % mysql -umysz -ppasswd Welcome to the MySQL monitor. Commands end with; or \g. Your MySQL connection id is 63 Server version: 5.0.38-Ubuntu_0ubuntu1-log Ubuntu 7.04 distribution |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 18:03 |