获取MySQL表的列表并为每个表运行代码

时间:2011-01-16 18:45:14

标签: php mysql for-loop

我在一个mysql数据库中有许多表。我需要将表名存储在变量中,并在每个表名上运行一些代码。

我该怎么做?

4 个答案:

答案 0 :(得分:2)

以下是如何做到的。

<?php

    $mysqli = new MySQLi (..); //add ur account details here

    $result = $mysqli -> query ("SHOW TABLES");
    $tables = array();
    while ($row = $result -> fetch_assoc()){
        $tables[] = $row[0];
    }

    foreach ( $tables as $table ){
        // do your processing on tables.
    }

有关show tables的更多信息:MySQL :: MySQL 5.5 Reference Manual :: 12.4.5.38 SHOW TABLES Syntax

答案 1 :(得分:2)

使用SHOW TABLES

$pdo = new PDO('mysql:dbname=mydb', 'myuser', 'mypass');
$stmt = $pdo->query('SHOW TABLES;');

if ($stmt->rowCount() > 0) {
    $tables = $stmt->fetchAll(PDO::FETCH_NUM);
    foreach ($tables as $table) {
        $table_name = $table[0];
        // do something
    }
}

答案 2 :(得分:1)

您可以使用以下查询SHOW TABLES FROM db_name获取表格列表。参见例如http://dev.mysql.com/doc/refman/5.5/en/show-tables.html

答案 3 :(得分:0)

使用它将直接为您提供表格数组,而无需循环结果:

$pdo = new PDO('mysql:dbname=mydb', 'myuser', 'mypass'); 
$tables = $pdo->query('SHOW TABLES')->fetchAll(PDO::FETCH_COLUMN, 0);