Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PostgreSQL][PHP] przy dodawaniu do bazy ucina string od wystąpienia znaku '&'
rasten
post 18.08.2011, 10:41:14
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 6
Dołączył: 31.05.2010

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


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?

Ten post edytował rasten 18.08.2011, 11:04:56
Go to the top of the page
+Quote Post
Cysiaczek
post 18.08.2011, 11:26:57
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




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.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
nospor
post 18.08.2011, 11:29:54
Post #3





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rasten
post 18.08.2011, 12:51:34
Post #4





Grupa: Zarejestrowani
Postów: 86
Pomógł: 6
Dołączył: 31.05.2010

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


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?

Ten post edytował rasten 18.08.2011, 12:52:12
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: 26.04.2024 - 02:21