X
ďťż

[PHP/MySQL] mysql_field_type - Dlaczego zwraca blob zamiast text

       

Podstrony


telcocafe

Cześć.
Pisze sobie coś w rodzaju PHPMyAdmin'a.
(Właściwie bardziej w celach ćwiczebnych)
Chce zautomatyzować niektóre operacje.
Kiedy pobieram dane o tabeli wyświetla mi się coś takiego:Tabela 'tabela' ma 6 pól i 11 wierszy Kolumny - 6 Wiersze - 11 Nazwa tabeli - tabela Array ( [field_name] => tabela1_id [field_type] => int [field_lenght] => 5 [field_flags] => not_null primary_key auto_increment ) Array ( [field_name] => tabela1_topic [field_type] => blob [field_lenght] => 65535 [field_flags] => not_null blob ) Array ( [field_name] => tabela1_content [field_type] => blob [field_lenght] => 65535 [field_flags] => not_null blob ) Array ( [field_name] => tabela1_date [field_type] => date [field_lenght] => 10 [field_flags] => binary ) Array ( [field_name] => testo_kolumny [field_type] => string [field_lenght] => 60 [field_flags] => ) Array ( [field_name] => nowa_nazwa2 [field_type] => int [field_lenght] => 55 [field_flags] => ) Teraz tak. Oba pola BLOB w bazie są typu TEXT, a pola typu TEXT nie mają określonej długości z tego co wiem.
Chce użyć tych danych do zapytania ALTER TABLE. Kiedy dam: ALTER TABLE tabela CHANGE tabela BLOB(65535) NOT_NULL BLOB; Pole zmieni swój typ na BLOB i ograniczy ilość znaków do 65535.
Oczywiście mogę zastosować funkcje sprawdzającą typ pola i zamieniać wszystkie BLOB na TEXT, ale wtedy co z tymi które mają pozostać jako BLOB.
Nawaliły 2 funkcje:
mysql_field_len
mysql_field_type
Zrobiłem prostą funkcje:public function alter_column_rename($table_name, $column_name, $new_column_name) { $this->query('SELECT '.$column_name.' FROM '.$table_name); $len = mysql_field_len($this->sql_result, 0); $type = mysql_field_type($this->sql_result, 0); return $this->query('ALTER TABLE '.$table_name.' CHANGE '.$column_name.' '.$new_column_name.' '.$type.'('.$len.')'); }Co z tym zrobić ? Proszę o pomoc.
Pozdrawiam.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.

    Drogi uzytkowniku!

    W trosce o komfort korzystania z naszego serwisu chcemy dostarczac Ci coraz lepsze uslugi. By moc to robic prosimy, abys wyrazil zgode na dopasowanie tresci marketingowych do Twoich zachowan w serwisie. Zgoda ta pozwoli nam czesciowo finansowac rozwoj swiadczonych uslug.

    Pamietaj, ze dbamy o Twoja prywatnosc. Nie zwiekszamy zakresu naszych uprawnien bez Twojej zgody. Zadbamy rowniez o bezpieczenstwo Twoich danych. Wyrazona zgode mozesz cofnac w kazdej chwili.

     Tak, zgadzam sie na nadanie mi "cookie" i korzystanie z danych przez Administratora Serwisu i jego partnerow w celu dopasowania tresci do moich potrzeb. Przeczytalem(am) Polityke prywatnosci. Rozumiem ja i akceptuje.

     Tak, zgadzam sie na przetwarzanie moich danych osobowych przez Administratora Serwisu i jego partnerow w celu personalizowania wyswietlanych mi reklam i dostosowania do mnie prezentowanych tresci marketingowych. Przeczytalem(am) Polityke prywatnosci. Rozumiem ja i akceptuje.

    Wyrazenie powyzszych zgod jest dobrowolne i mozesz je w dowolnym momencie wycofac poprzez opcje: "Twoje zgody", dostepnej w prawym, dolnym rogu strony lub poprzez usuniecie "cookies" w swojej przegladarce dla powyzej strony, z tym, ze wycofanie zgody nie bedzie mialo wplywu na zgodnosc z prawem przetwarzania na podstawie zgody, przed jej wycofaniem.