![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
Jak mogłabym zrobić ucieczkę od niedozwolonych znaków? Bo robię UPDATE do bazy i niektóre stringi zawierają jakieś sekwencje znaków, które skutecznie powodują błędy zapytania. Czyli muszę jakoś obejść te błędne fragmenty. Jak to zrobić? Dla PDO znalazłam quote ale nie bardzo chce mi działać, to znaczy nie wiem jak zadziałać tą funkcją quote na zmienną np $zmm tak, żeby potem mogła zrobić UPDATE i jak wartość podac właśnie $zmm.
Kolejna sprawa to jak ja odkręcę działanie tej lub innej funkcji? Bo w bazie muszę mieć w jakiś sposób przetworzone teksty właśnie z myśla o SQL. Ale jak bym chciała je pobrać z bazy i wyświetlić, albo edytować to pewnie by mi przeszkadzały te apostrofy (chyba apostrofy są wstawiane w tym uciekaniu w sql) I nie wiem jak to odkręcić. pozdrawiam i bardzo proszę o pomoc Jola |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
Już zabieram się do rozgryzania tego, rozumiem, że ta funkcja przerobie mój tekst do takiej postaci, żeby dało się go dodać do bazy? Czy można tej funkcji używać bez prepare, bo tego jeszcze nie umiem? A ja potrzebuje tylko na zmienną z tekstem nią zadziałać i potem dodać go do bazy.
Jola |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
musi być z prepare, czego tu sie uczyć ? (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
Nie wszystko na raz, jednocześnie! Nie dam sobie rady. Próbuję użyć tego bindvalue ale mi nie wychodzi. Czy jest inny sposób na poprawieni tekstu w zmiennej? Czy może chodzi o nie poprawianie tekstu w zmiennej ale tylko o poprawianie go na chwile w zapytaniu? Tak czy siak to nie działa mi (IMG:style_emoticons/default/sad.gif) (IMG:style_emoticons/default/sadsmiley02.gif)
Jola |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Przecież pisze jak wół w przykładzie co masz zrobić. Manual sam za ciebie tego nie napisze. Pokaż jak robisz.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/blinksmiley.gif) a i uprzedzę następne pytanie bindParam działa tylko ze zmiennymi, gdyż używa referencji, a do bindValue możesz dawać i zmienne i wartości, także używaj tego co będzie Ci w danym momencie potrzebne (IMG:style_emoticons/default/winksmiley.jpg) mam nadzieję, że coś wytłumaczyłem, a jak nie to pozostaje jeszcze książka, google, manual.. (IMG:style_emoticons/default/laugh.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@sniffer32 a czym sie rozni podany przez ciebie kod od tego ktory tu już padł w linku do manualu?
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
Próbowałam jeszcze z guote, bo wydawało mi się prostsze:
$aa = $dbh -> quote( $text ); echo $aa; $sql1233 = " UPDATE tab SET opis_pl = '$aa' WHERE id = '$id' "; $dbh -> exec( $sql1233 ); ale nie wyszło, bład się pojawił (IMG:style_emoticons/default/sad.gif) Ale muszę powiedzieć: sniffer32 jesteś kochany! to z bindvalue DZIAŁA! Nawet nie wiesz jak bardzo się cieszę. Trochę to zagmatwane ale działa a to najważniejsze. Czy mógłbyś zerknąć również na ten kod z quote? Czemu on nie działa? Bo nie mogę ukryć, że jak na razie to całe prepare i bindvalue troszkę mnie przytłacza i ilością kodu i w ogóle. Może jest jest jeszcze jakieś inne rozwiązanie? pozdrawiam najserdeczniej Jola |
|
|
![]()
Post
#10
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Ale muszę powiedzieć: sniffer32 jesteś kochany! to z bindvalue DZIAŁA! przeciez dokladnie to samo mialas w linku co dostalas na samym początku. przykladaj uwagę do tego co ci ludzie dają, bo w przeciwnym wypadku moderatorzy podejmą stosowne kroki* *pójdą sobie na piwo.... (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
nospor teraz to i ja taka mądra jestem (IMG:style_emoticons/default/smile.gif) Ale jak wpatrywałam się w ten manual to ni w ząb nie umiałam sobie tego przerobić (IMG:style_emoticons/default/sad.gif) Teraz się zastanawiam jak przerobić ten sposób z quotes żeby zadziałał. Bo to nie daje mi spokoju. Gdzieś mam błąd ale nie potrafiłam go znaleźć. Może widzisz co powinnam poprawić?
pozdrawiam Jola |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat(jolam) ale nie wyszło, bład się pojawił to wstaw jego zawartość tutaj, nie mamy parserów w głowach (IMG:style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
A $id skąd masz? Z czytanki?
wyswietl sobie zapytanie i wklej tutaj to bedziesz wiedziała jaki jest błąd. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
Taki mam błąd (wycięłam ścieżkę do skryptu bo była bardzo długa):
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1 near "jest": syntax error' in TUTAJ_SCIEZKA_DO_SKRYPU:245 Stack trace: #0 TUTAJ_SCIEZKA_DO_SKRYPU(245): PDO->exec('?(IMG:style_emoticons/default/questionmark.gif) ?UPDATE tab..') #1 {main} thrown in TUTAJ_SCIEZKA_DO_SKRYPU on line 245 A $id mam z wcześniejszej cześć skryptu. I to akurat jest na pewno dobrze. Problem jest z zawartością tego co jest w $aa. Bo jeśli $aa='abc'; to wtedy jest ok. Macie jakiś pomysł co tu może być źle? pozdrawiam serdecznie Jola |
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
A o co my prosiliśmy? O wyświetlenie zapytania czyli twojego $sql1233
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
wookieb ale w zapytaniu będzie cała treść artykułu, czyli to będzie bardzo długie. Chyba działanie funkcji nie powinno zależeć od treści artykułu?
Zmieniłam treść wstawiając jedno zdanie tylko. Teraz zmienna $text='Drzeworyt jest jedną z technik druku wypukłego.'; wyświetlenie zapytania sql : UPDATE tab SET opis_pl = ''Drzeworyt jest jedną z technik druku wypukłego.'' WHERE id = '1000' błąd jest tak Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1 near "Drzeworyt": syntax error' in TUTAJ_SCIEZKA_DO_SKRYPU:247 Stack trace: #0 TUTAJ_SCIEZKA_DO_SKRYPU(247): PDO->exec('?(IMG:style_emoticons/default/questionmark.gif) ?UPDATE tab...') #1 {main} thrown in TUTAJ_SCIEZKA_DO_SKRYPU on line 247 czy teraz będziesz potrafił mi pomóc? pozdrawiam serdecznie Jola |
|
|
![]()
Post
#17
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
nie: SET opis_pl = '$aa'
a: SET opis_pl = $aa |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
Za raz sprawdzę. Ale wydaje mi się to dziwne, bo jesli mam zapytanie
" UPDATE tab SET opis_pl = '$aa' WHERE id = '$id' " to czemu raz zmienne mają być w apostrofach ('$id') a raz nie ($aa). Na czym to polega, od czego zależy? Może powinnam jakoś inaczej używać cudzysłowów i apostrofów w zapytaniach? Wytłumaczysz mi to, proszę? pozdrawiam Jola Zadziałało! Ale teraz to już zgłupiałam zupełnie! O co chodzi z tym brakiem apostrofów. Domyślam się, że funkcja quoted dodaje właśnie owe apostrofy, co może powodować te kłopoty, z którymi się zmagałam. Czy zamiast tego gdybym miała ' UPDATE tab SET opis_pl = "$aa" WHERE id = "$id" ' to byłoby dobrze? |
|
|
![]()
Post
#19
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Domyślam się, że funkcja quoted dodaje właśnie owe apostrofy nie ma co sie domyslic. to jest czarno na bialym napisane w manualu przy opisie funkcji quote.Cytat Czy zamiast tego gdybym miała Nie. wowczas wlozysz tekst, ktory bedzie mial w sobie apostrofy. A chyba chcesz wlozysz tekst bez apostrofow
' UPDATE tab SET opis_pl = "$aa" WHERE id = "$id" ' to byłoby dobrze? |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
No masz racje chciałabym włożyć tekst bez apostrofów, żebym później nie musiała ich usuwać. A czy da się jakoś tak używać cudzysłowów i apostrofów, żeby nie trzeba było z okazji użycia funkcji quote usuwać apostrofy przy zmiennych w zapytaniu sql? Chodzi mi o takie bardziej uniwersalne rozwiązanie. Proszę poradź mi.
pozdrawiam serdecznie Jola |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 13:24 |