Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] select replace () - zmiana cudzysłowu na inny znak lub usunięcie
Forum PHP.pl > Forum > Przedszkole
alekto
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?
freemp3
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?
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.