Sil3nt
17.07.2008, 17:25:49
Witam.
Czy jest różnica w ilości zajmowanego miejsca przez bazę danych pomiędzy polami typu varchar(50) a varchar(255) oraz text i longtext? Chodzi mi o to, śe maksymalna długosć wpisanego tekstu wprowadzonym w formularzu www to np. 40 znaków ale jeśli to są same znaki specjalne html to się wydłuży pięciokrotnie.
Przy okazji mam jeszcze jedno pytanie: jakie znaki trzeba escapować slashem (\) oprócz \,'," i `?
Kicok
17.07.2008, 19:39:33
varchar(50) - N + 1 bajtów
varchar(255) - N + 1 bajtów
text - N + 4 bajty
longtext - N + 4 bajty
Gdzie "N" to ilość znaków wprowadzanych do danego pola. Różnica jest tylko w maksymalnej ilości znaków które można do danego pola upchnąć. Jeżeli pole jest kodowane w utf-8 to np. polskie znaki będą zajmowały po 2 bajty, nie jeden.
Cytat
Przy okazji mam jeszcze jedno pytanie: jakie znaki trzeba escapować slashem (\) oprócz \,'," i `?
mysql_real_escape_string" title="Zobacz w manualu PHP" target="_manual - tej funkcji możesz zaufać ;]
Sil3nt
17.07.2008, 21:12:05
Dzięki za pomoc.
Mam jeszcze jedno pytanie odnośnie funkcji mysql_real_escape_string - czy jeśli nie przechowuje informacji o połączeniu w zmiennej - nie zapisuje do zmiennej wartości zwracanej przez funkcję mysql_connect to i jeśli nie podam opcjonalnego drugiego argument to czy dunkcja sama użyje kodowania aktualnie połączonej bazy danych?
PS: czy polskie znaki zakodowane w utf-8 zajmują 2 miejsca w polu typu varchar czy tylko zajmują 2 bajty miejsca na dysku a są traktowane jako 1 znak?
Kicok
18.07.2008, 15:28:56
mysql_real_escape_string" title="Zobacz w manualu PHP" target="_manual - parametry -> identyfikator połaczenia -> drugie zdanie
Cytat
PS: czy polskie znaki zakodowane w utf-8 zajmują 2 miejsca w polu typu varchar czy tylko zajmują 2 bajty miejsca na dysku a są traktowane jako 1 znak?
Jeden polski znak zakodowany w UTF-8 jest traktowany jako 1 znak i zajmuje 2 bajty