Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pytanie o parametry kolumny - nie poprzez mysql_field, wydajnośc
Forum PHP.pl > Forum > Bazy danych
ziel_inf
witam
Chce pobrać informacje o parametrach kolumny MySql (długość , typ, itp).
obecnie robię to poprzez pytanie
  1. $query=mysql_query("SELECT * FROM $tabela_SQL"); //za duzo danych pobiera
  2. $i = 0;
  3. while ($i < mysql_num_fields ($query)) { //przeszukuje kolumny w sql
  4. $field_flag=mysql_field_flags($query,$i);
  5. $length = mysql_field_len($query, $i);
  6. $type = mysql_field_type ($query, $i);
  7. $name = mysql_field_name($query, $i);
  8. $i++;
  9. }

Wydaje się to mocno NIE WYDAJNE. (SELECT wszystko z tabeli).

Czy jest lepsze rozwiązanie (pobranie tylko parametrów pola/kolumny bez pobierania zawartości pól?)

Na razie omijam problem pleceniem SELECT * FROM $tabela_SQL WHERE .... ( pobiera tylko jeden wiersz). Ale co w przypadku pustej tabeli SQL ?
z góry dzieki.
mortus
Posłuż się zapytaniem:
  1. SHOW COLUMNS FROM `table`

Przykład w manualu.
Alternatywą będzie wydobycie odpowiednich informacji z tabeli COLUMNS bazy INFROMATION_SCHEMA.
ziel_inf
Dzięki
Niech CI klienci w zleceniach wynagrodzą.
Wysupłanie długości kolumny
  1. $query = mysql_query ("SHOW COLUMNS FROM $tabela FROM $sql_nazwa_bazy");
  2.  
  3. while ($row = mysql_fetch_assoc ($query))
  4. {
  5. echo 'Nazwa kolumny: '.$row[Field].'<br>';
  6. echo 'Typ kolumny: '.$row[Type].'<br>';
  7. preg_match("#[0-9]+#", $row[Type], $matches);
  8. echo 'Dlugosc kolumny: '.$matches[0].'<br>';
  9. // [Type] => int(7);
  10. // [Null] =>
  11. // [Key] => PRI
  12. echo 'klucz kolumny: '.$row[Key].'<br>';
  13. echo 'dodatki kolumny: '.$row[Extra].'<br>';
  14. // [Default] =>
  15. // [Extra] => auto_increment
  16. echo '<hr>';
alegorn
a nie prosciej :

  1. DESCRIBE `baza`.`tabela`;


masz wszystkie informacje dotyczace tabeli....

ewentualnie :
  1. SHOW CREATE TABLE `uslugozercy_dane`.`branza_nace`;



j.
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.