Я делаю проект, где у меня нет доступа к phpmyadmin. Я хочу видеть структуру и данные таблицы. Как я могу сделать это, используя запрос MySQL? я использовал DESCRIBE tablename
но это только отображало список столбцов. Есть идеи? Я могу использовать другой запрос SELECT * FROM tablename
но я просто хочу знать, где есть какая-либо команда, которая будет служить цели? Мне также нужно знать тип из моей таблицы столбцов.
Чтобы получить список столбцов для таблицы, используйте оператор SQL DESCRIBE. DESCRIBE предоставляет информацию о столбцах в таблице: Синтаксис следующий:
DESCRIBE TableName
ех. DESCRIBE products;
дам:
+-------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+----------------+
| product_id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| url | varchar(100) | NO | UNI | NULL | |
| name | varchar(50) | NO | | NULL | |
| description | varchar(255) | NO | | NULL | |
| price | decimal(10,2) | NO | | NULL | |
| visible | tinyint(1) unsigned | NO | MUL | 1 | |
+-------------+---------------------+------+-----+---------+----------------+
Чтобы получить список таблиц в базе данных, используйте этот оператор SQL:
SHOW TABLES
Извлечение определения таблицы из существующей таблицы
SHOW CREATE TABLE TableName;
Также проверьте эту ссылку для большего количества команд, связанных с таблицами MySQL: Табличные команды MySQL
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS;
должен начать вас. См. Главу 20 в документации MySQL.
mysqli_fetch_fields
может быть использован для получения метаданных для mysqli_result
ответ.
$link = mysqli_connect("host");
$result = mysqli_query($link, "select * from foo");
$meta = mysqli_fetch_fields($result);
foreach ($meta as $column) {
echo "Name: {$column->name}\n";
echo "Table: {$column->table}\n";
echo "Max. Len: {$column->max_length}\n";
echo "Length: {$column->length}\n";
echo "charsetnr: {$column->charsetnr}\n";
echo "Flags: {$column->flags}\n";
echo "Type: {$column->type}\n";
}
$result->data_seek(0);
while ($row = $result->fetch_assoc()) {
foreach ($row as $name => $value) {
echo "{$name} = {$value}\n";
}
}
mysqli_free_result($result);
PDOStatement::getColumnMeta
обеспечивает аналогичную функциональность для PDO
запрос.
EXPLAIN table_name
Это покажет детали.
Надеюсь это поможет.