Czy istnieje sposób przechwycić nazwę kolumny tabeli w mysql? używając phpUzyskaj nazwy kolumn tabeli w mysql?
Odpowiedz
Można użyć DESCRIBE:
DESCRIBE my_table;
Albo w nowszych wersjach można użyć INFORMATION_SCHEMA:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';
Albo można użyć SHOW COLUMNS:
SHOW COLUMNS FROM my_table;
Spójrz na: funkcja
mysql_query('DESCRIBE '.$table);
MySQL opisać stół powinno Cię tam, gdzie chcesz iść (umieścić swoje nazwisko w tabeli dla „stół”). Będziesz musiał przeanalizować wynik, ale to całkiem proste. Jak sobie przypominam, jeśli wykonasz to zapytanie, wynik zapytania PHP uzyskującego dostęp do funkcji, które normalnie dałyby ci parę klucz-wartość, będzie miał nazwy kolumn jako klucze. Ale minęło trochę czasu odkąd używałem PHP, więc nie trzymaj mnie. :)
Jest kilka całkiem niezłych dokumentów na php.net w http://us3.php.net/manual/en/function.mysql-list-fields.php – dannysauer
poniższych stwierdzeń SQL są prawie równoważne:
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name'
[AND table_schema = 'db_name']
[AND column_name LIKE 'wild']
SHOW COLUMNS
FROM tbl_name
[FROM db_name]
[LIKE 'wild']
referencyjny: INFORMATION_SCHEMA COLUMNS
Jest to również, jeśli wolisz:
mysql_query('SHOW COLUMNS FROM tableName');
Funkcja mysql_list_fields
mogą Cię zainteresować; ale, jak podaje instrukcja:
Ta funkcja jest przestarzała. Jest to zalecane zamiast używać
mysql_query()
do zamiast tego wydaje instrukcję SQL .
Jak działa funkcja, jeśli nie wysyła kwerendy SQL do serwera? Dlaczego jest przestarzały? – Pacerier
Można również w mrówka, aby sprawdzić mysql_fetch_array()
, jak w:
$rs = mysql_query($sql);
while ($row = mysql_fetch_array($rs)) {
//$row[0] = 'First Field';
//$row['first_field'] = 'First Field';
}
Zrobiłem funkcję PDO która zwraca wszystkie nazwy kolumn w prostej tablicy.
public function getColumnNames($table){
$sql = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = :table";
try {
$core = Core::getInstance();
$stmt = $core->dbh->prepare($sql);
$stmt->bindValue(':table', $table, PDO::PARAM_STR);
$stmt->execute();
$output = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$output[] = $row['COLUMN_NAME'];
}
return $output;
}
catch(PDOException $pe) {
trigger_error('Could not connect to MySQL database. ' . $pe->getMessage() , E_USER_ERROR);
}
}
Wyjście będzie tablicą:
Array (
[0] => id
[1] => name
[2] => email
[3] => shoe_size
[4] => likes
...)
Przepraszamy za Necro ale lubię swoją funkcję;)
PS: Nie uwzględniłem klasy Core, ale możesz użyć własnej klasy .. D.S.
To rozwiązanie jest z linii poleceń mysql
mysql>USE information_schema;
się poniżej zapytania wystarczy zmienić < --DATABASE_NAME -> do bazy danych i < --TABLENAME -> do nazwy tabeli, gdzie po prostu chcesz Pole wartości opisać polecenia
mysql> SELECT COLUMN_NAME FROM COLUMNS WHERE TABLE_SCHEMA = '<--DATABASE_NAME-->' AND TABLE_NAME='<--TABLENAME-->';
Inne odpowiedzi już wspomniały o tym .......... – Pacerier
to również zauważyć, że można użyć
EXPLAIN table_name
który jest synonimem DESCRIBE table_name
i SHOW COLUMNS FROM table_name
, chociaż EXPLAIN jest częściej używany do uzyskiwania informacji o planie wykonania kwerendy.
Jak o tym:
SELECT @cCommand := GROUP_CONCAT(COLUMN_NAME ORDER BY column_name SEPARATOR ',\n')
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';
SET @cCommand = CONCAT('SELECT ', @cCommand, ' from my_database.my_table;');
PREPARE xCommand from @cCommand;
EXECUTE xCommand;
ten pracował dla mnie ..
$sql = "desc MyTableName";
$result = @mysql_query($sql);
while($row = @mysql_fetch_array($result)){
echo $row[0]."<br>";
}
można dostać całą strukturę tabeli, używając następującego prostego polecenia.
DESC TableName
lub możesz użyć następującego zapytania.
SHOW COLUMNS FROM TableName
w mysql, aby uzyskać kolumny szczegóły i strukturę tabeli autorem następujących słów kluczowych lub zapytań
1. DESC table_name
2. DESCRIBE table_name
3. SHOW COLUMNS FROM table_name
4. SHOW create table table_name;
5. EXPLAIN table_name
$col = $db->query("SHOW COLUMNS FROM category");
while ($fildss = $col->fetch_array())
{
$filds[] = '"{'.$fildss['Field'].'}"';
$values[] = '$rows->'.$fildss['Field'].'';
}
if($type == 'value')
{
return $values = implode(',', $values);
}
else {
return $filds = implode(',', $filds);
}
Aby być bardziej pomocnym dla przyszłych użytkowników, proszę podać kontekst, w którym można znaleźć odpowiedź, a nie tylko zrzut kodu. –
Potrzebowałem nazwy kolumn w postaci płaskiej tablicy, podczas gdy inne odpowiedzi zwrócony tablice asocjacyjne, więc użyłem:
$con = mysqli_connect('localhost',$db_user,$db_pw,$db_name);
$table = 'people';
/**
* Get the column names for a mysql table
**/
function get_column_names($con, $table) {
$sql = 'DESCRIBE '.$table;
$result = mysqli_query($con, $sql);
$rows = array();
while($row = mysqli_fetch_assoc($result)) {
$rows[] = $row['Field'];
}
return $rows;
}
$col_names = function get_column_names($con, $table);
$ col_names wynosi teraz:
(
[0] => name
[1] => parent
[2] => number
[3] => chart_id
[4] => type
[5] => id
)
Mam napisać prosty skrypt php, aby pobrać kolumny tabeli poprzez PHP: Show_table_columns.php
Ciesz się!
Proszę zamieścić rzeczywistą odpowiedź tutaj i wykorzystywać tylko jako przyczynę/odniesienie – ChrisF
- 1. Uzyskaj nazwy kolumn
- 2. mysql, iteracja poprzez nazwy kolumn
- 3. Pobierz tylko nazwy kolumn w tablicy mysql
- 4. Jak dynamicznie wybierać nazwy kolumn w mySQL
- 5. Zapytanie MySQL, aby uzyskać nazwy kolumn?
- 6. nazwy kolumn tabeli utworzonej przez związek
- 7. skrypt MySQL konwertować nazwy kolumn na małe
- 8. Maksymalna liczba kolumn w tabeli MySQL
- 9. Uzyskaj kolumn tabeli przez GetSchema() metoda
- 10. Po prostu nazwy kolumn z ula tabeli
- 11. Zamiana wartości kolumn w MySQL
- 12. pobrać nazwy kolumn dla określonej tabeli
- 13. INSERT do tabeli bez określania nazwy kolumn
- 14. Maksymalna długość nazwy tabeli w MySQL
- 15. Jak wykonać zrzut mysql wybranych kolumn tabeli
- 16. zapytanie Oracle pobrać nazwy kolumn
- 17. tabele show mysql sortuj według nazwy tabeli
- 18. Uzyskaj listę kolumn obliczeniowych w tabeli bazy danych (SQL Server)
- 19. PHP MySQL Get nazwy kolumn podczas iteracji przez wszystkie rekordy
- 20. jak uzyskać nazwy kolumn tabeli w dostępie ms?
- 21. MySql: usunąć wiersze tabeli w zależności od wartości duplikatów kolumn?
- 22. Ile kolumn możesz mieć (maksymalna) w tabeli MySQL?
- 23. Uzyskaj listę nazw kolumn z tabeli bazy danych Firebird
- 24. Przekształcanie tabeli danych, aby nazwy kolumn do nazw wierszy
- 25. Jak wyświetlić indeksy tabeli w mysql Workbench?
- 26. Czy możemy uzyskać wszystkie nazwy kolumn z tabeli HBase?
- 27. Wykonaj wsteczną wstecz wszystkie nazwy tabeli/kolumny
- 28. Uzyskaj sumę kolumn i użyj do obliczenia procentu całkowitej (mySQL)
- 29. Jak wyszukiwać nazwy kolumn w Vertica?
- 30. Dynamiczne nazwy kolumn w data.table
DESCRIBE jest tak naprawdę skrótem do POKAŻ KOLUMNY (http: //dev.mysql.com/doc/refman/5.0/en/describe.html) – svens
@ svens yeah, DESCRIBES jest prostsze, POKAŻ KOLUMNY daje więcej opcji – Greg
Chciałbym zagłosować na wersję Information_Schema, ponieważ ta składnia jest obsługiwana przez większość głównych baz danych. Najlepiej uczyć się tylko w jedną stronę, jeśli musisz. – Kibbee