Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] select replace () - zmiana cudzysłowu na inny znak lub usunięcie
alekto
post 13.03.2014, 12:46:30
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 10.06.2013

Ostrzeżenie: (0%)
-----


Mam zapytanie, które przy pomocy concat i replace przerabia nazwę tytułu książki na nazwę jpg przynależącego do tej książki.
W nazwie książki są różne specjalne znaki - wiadomo wink.gif wszystkie powinny być usunięte

Czyli nazwa książki w bazie to: H. Sieniekiwcz, "Quo Vadis"
a obrazek hsienkiewiczquovadis.jpg

w uproszczeniu zapytanie wygląda tak:
  1. SELECT *
  2. REPLACE (REPLACE (REPLACE (REPLACE (REPLACE
  3. ' ', ''), /*spacja - ok */
  4. '„', ''), /*cudzysłów - ok */
  5. '”', ''), /*cudzysłów - ok */
  6. ' \' ', ''), /* apostrof - ok */
  7. ' " ', '') /*tu jest problem*/
  8. FROM ...


Problem:
" zmienia mi na "
\" też zmienia mi na "

Z innymi znakami nie mam takiego problemu. Czy jest na to jakiś sposób?
Go to the top of the page
+Quote Post
freemp3
post 13.03.2014, 13:49:48
Post #2





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

Ostrzeżenie: (0%)
-----


Funkcja REPLACE zmienia cudzysłów na ", czy może został tak zapisany do bazy danych? Możesz dodać kolejny REPLACE, który usunie ".

Radziłbym także dodać oddzielną kolumnę na przechowywanie nazwy obrazka i aktualizować ją przy zapisie. Po co za każdym razem generować to samo i tylko obciążać serwer?


--------------------
Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.

https://www.aroch.pl
https://themeforest.net/user/aroch
https://www.astroblog.aroch.pl
https://www.4geeks.pl
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 8.06.2025 - 07:29