kahil
10.08.2008, 11:28:31
Witam,
Mam problem i nie potrafie sobie z nim poradzić mianowicie
jak dodaje do bazy np. "test.1" to potem jak wyszukuje np. "test_1" to znajduje to "test.1"
wiem że można to załatwić dodając "test\.1" ale jak to zrobić prosto? Addslashes, preg_quote itd nie działają! magic_quotes_gpc włączone...
Czy ktoś ma jakiś pomysł co jest nie tak?
Polej jest tak zdefiniowane:
VARCHAR( 250 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
pozdro
Karol
wookieb
10.08.2008, 11:49:11
Kod
str_replace('.', '\.', $ciag);
To takie trudne?
http://php.net/str_replace
kahil
10.08.2008, 11:57:49
Niezupełnie chodziło mi o to - troche źle chyba pytanie postawiłem.
Chodzi o to że pierwszy raz mi się zdarza że przy wyszukiwaniu kropka nie nie jest brana jak kropka tylko jak dowolny znak.
Czy to coś z kodowaniem bazy, rodzajem pola? Czy może to normalne i nie da sie tego wyeliminować inaczej niż tym sposobem który wymieniłeś
A teraz jeszcze odkryłem że to dotyczy tylko "_" czyli jak wyszukuje "test_1" to znajduje "test.1" ale jak wyszukuje np. "test=1" czy cokolwiek innego w ten desen to nic nie znajduje... o co ke pasa?
dr_bonzo
10.08.2008, 13:20:48
Pokaz SQLke wyszukiwania
SELECT * FROM tab WHERE pole LIKE "test_1";
Przy like, podkreslenie to jest dokladnie jeden dowolny znak [% - dowolna ilosc znakow, 0 lub wiecej]
Uzyj:
SELECT * FROM tab WHERE pole = "test_1";
Rude Dude
19.07.2009, 13:21:30
Dlatego wyciąga ci test.1 ponieważ znak _ w zapytaniu do mysql jest interpretowany jako dowolny znak, więc wyciągnie z bazy test(jeden dowolny znak)1.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.