2016-08-23 3 views
0

У меня есть запрос, который должен пересекать все таблицы в базе данных. Он делает это хорошо, я тестирую его, вызывая имена таблиц.
Но, я пытаюсь пройти через каждый столбец в базе данных, чтобы я мог использовать его в другом запросе.Цитирование столбцов таблицы

Это мой текущий код, который проходит через таблицу в базе данных:

<?php 
$host = "127.0.0.1"; 
$username = "username"; 
$password = "password"; 
$database = "database"; 

$link = new mysqli($host, $username, $password, $database); 

if($link->connect_error) 
{ 
    die("Connection died: ".$link->connect_error); 
} 

$showtables = $link->query("SHOW TABLES;"); 

foreach($showtables->fetch_all() as $table) 
{ 
    printf($table[0] . "\n"); 

    // what i'm trying to achieve: 
    foreach(/* ??? */ as $column) 
    { 
     printf("\t- ".$column."\n"); 
    } 
} 
?> 

Может кто-нибудь одолжить свою руку? Спасибо!

+0

Но почему? Кстати, информационная схема предоставит вам все это без необходимости каких-либо циклов, но я все еще удивляюсь, зачем вам это нужно! – Strawberry

+0

@Strawberry Я создаю скрипт, который проходит через базу данных 255 таблиц и преобразует каждый столбец в LONGBLOB, а затем в UTF8MB4, потому что в настоящее время он заполнен тарабарщиной. – shavit

ответ

1

Что-то вроде:

$host = "127.0.0.1"; 
$username = "username"; 
$password = "password"; 
$database = "database"; 

$link = new mysqli($host, $username, $password, $database); 

if($link->connect_error) 
{ 
    die("Connection died: ".$link->connect_error); 
} 

$showtables = $link->query("DESCRIBE name_of_table;"); 

foreach($showtables->fetch_all() as $table) 
{ 
    printf($table[0] . "\n"); 
} 

Если вы хотите, чтобы все таблицы в базе данных использовать этот SQL:

select * from information_schema.columns 
where table_schema = 'your_db' 
order by table_name,ordinal_position 
+0

Не совсем, это просто дает мне имя таблицы вместо фактической проверки столбцов таблицы! – shavit

+0

вы можете сделать var_dump на $ showtables-> fetch_all(), чтобы знать, как выглядит. –

+0

Например, в таблице xperience_stats: array (1) { [0] => строка (15) "xperience_stats" } – shavit

Смежные вопросы