Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PostgreSQL][PHP] przy dodawaniu do bazy ucina string od wystąpienia znaku '&'
Forum PHP.pl > Forum > Przedszkole
rasten
Witam, jak próbuje dodać do bazy albo edytować tekst postaci: 'cośtam costam & cośtam', to zapisuje się tylko część do znaku '&' (ale bez niego).
Kod:
  1. $name = pg_escape_string(addslashes($name));
  2. $sql = "insert into category(name ) values('{$name}')";
  3. $wynik = $this->con()->Execute($sql);

Co robię źle?
Cysiaczek
Przed wysłaniem zapytania sprawdź jaka wartość jest w zmiennej $name.
Potem zrób to samo dla tej zmiennej po zastosowaniu funkcji escapujących.
Sprawdź, jaka jest maksymalna długość tekstu w polu name w bazie danych, bo może przycina do maksymalnej długści.
nospor
Jak używasz pg_escape_string() to addslashes jest totalnie zbędne. Zwracaj uwagę na funkcje których używasz - więcej nie znaczy lepiej. Często wręcz znaczy gorzej
rasten
Ok, dzięki za odpowiedź. Faktycznie zmienna ta już po stronie serwera jest ucięta. Zapytanie do serwera wysyłałem ajaxowo, ustawiając zmienne w ten sposób:
  1. var string ='co='+co+'&wpisz='+wpisz;

jak zamieniłem na JSONA czyli:
  1. var string = {'co' : co, 'wpisz': wpisz};

jest już ok.

Mam jeszcze pytanko: lepiej używać pg_escape_string() czy addslashes()? Jakich funkcji powinienem jeszcze użyć na danych tekstowych przed zapisaniem do bazy?
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.