![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 18.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jak w temacie.
Co zrobić, by wpisać do bazy zmienną zawierającą znak '\' np. 'zmienna\25'. Tu jak widze się wpisało, więc musi być jakiś sposób. Podejrzewam, że to dla Was żaden problem, a mnie już zajął kilka godzin. ![]() Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
\ to znak sugerujący że nadchodzi znak specjalny taki jak: \n, \t, ... . Musisz od niego usiec.
Czyli zapisać do bazy nie zmienna\25 a zmienna\\25 Masz do tego mysql-real-escape-string() Jest też kombinacja addslashes() i stripslashes() Ten post edytował mike 18.06.2008, 14:55:06 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 18.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy to dobrze, ale działa.
Napisałem coś takiego: $tekst = 'SEG_M1'; $tekst = str_replace('\\', '\\\\', $tekst); mysql_query("insert into proba (tekst) values ('$tekst')"); Może to niezbyt ładne, ale daje efekt ![]() Dziękuję za zainteresowanie i pozdrawiam. Ten post edytował Wojtek_kra 18.06.2008, 15:36:09 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
później wrzucasz tekst do bazy, a przy wypisywaniu tekstu na ekran stosujesz:
napisałem w sumie to samo co mike, tylko że z przykładem zastosowania ![]() -------------------- cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 121 Pomógł: 15 Dołączył: 19.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
jesli $tekst pobrales z bazy danych to nie powinno sie uzywac stripslashes. jest to niepotrzebne a czasami moze Cie przyprawic o niemaly problem. przyklad: do bazy wstawiasz tekst "\\localhost\\bla", przed wstawieniem do bazy musisz to przepuscic przez addslashes, wtedy zapytanie wysylane do bazy danych bedzie wygladalo np:
teraz jesli to odczytasz np za pomoca:
to $sciezka bedzie rowna = '\\localhost\\bla', a nie '\\\\localhost\\\\bla' ![]() jesli teraz przepuscilbys zmienna $sciezka przez stripslashes to otrzymalbys: '\localhost\bla' - a tego na pewno nie chcemy |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 288 Pomógł: 12 Dołączył: 2.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Muszę tu panów poprawić.
Z addslashes (bądź też escape_string) korzystaj tylko wtedy, gdy upewnisz się, że na serwerze opcja magic quotes jest wylaczona.
Pozwoli to migrować pomiędzy serwerami bez problemów. Jeśli będziesz filtrował wszystkie dane do bazy przez tę funkcję, nie będzie potrzebne używanie stripslashes po wyciągnięciu danych z bazy (co jest wymogiem po błędnym wstawieniu danych do bazy). Jeśli już za późno na filtrowanie przez tę funkcję, możesz użyć alternatywy:
Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 02:09 |