2011-01-16 11 views

Respuesta

13

Hay muchas maneras.

SHOW TABLES 

Es la instrucción SQL más simple para hacer eso. También puede echarle un vistazo al INFORMATION_SCHEMA.TABLES si desea tener más detalles o hacer algún tipo de filtrado o tal.

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE 'your_database'; 
+0

cuáles son INFORMATION_SCHEMA y TABLE_SCHEMA ?? – laukok

+0

http://dev.mysql.com/doc/refman/5.0/en/information-schema.html – cubic1271

8

me gustaría probar algo como:

function get_tables() 
{ 
    $tableList = array(); 
    $res = mysqli_query($this->conn,"SHOW TABLES"); 
    while($cRow = mysqli_fetch_array($res)) 
    { 
    $tableList[] = $cRow[0]; 
    } 
    return $tableList; 
} 

Usted también puede estar interesado en este descremado: https://devzone.zend.com/13/php-101-part-8-databases-and-other-animals_part-2/ (EDIT: este enlace se refiere a la API mysql y mysqli no, pero la mayoría de las llamadas tienen una mysqli paralelo).

HTH

+0

gracias por esta respuesta! – laukok

+0

El enlace proporcionado 404s. – Stephane

+0

Enlace actualizado: https://devzone.zend.com/13/php-101-part-8-databases-and-other-animals_part-2/ – cubic1271

0

aquí es pequeño ejemplo

class database { 
    public $connection; 

    function __construct() { 
     $this->connection = mysqli_connect(DBHOST, 
              DBUSER, 
              DBPASS, 
              DBNAME) or 
     die('Database Connection Error: '.mysqli_connect_error()); 
    } 

    public function close_database() { 
     return mysqli_close($this->connection); 
    } 
    public function query($query) { 
     $query = mysqli_query($this->connection ,$query) or die($this->show_errors('Query Execution Error: '.mysqli_error($this->connection),'E')); 
     return $query; 
    } 
    public function fetch_assoc($query) { 
     $query = mysqli_fetch_assoc($query); 
     return $query; 
    } 
} 

$db = new database(); 
$query = $db->query("SHOW TABLES FROM DATABASENAME"); 
$db->fetch_assoc($query); 
+1

En lugar de crear esta clase como un contenedor solo para usar funciones de procedimiento, debería usar la clase MySQLi. –

6

Uso de PHP 5.5 o posterior, una solución simple está usando PHP integrado array_column() función.

$link = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME); 
$listdbtables = array_column(mysqli_fetch_all($link->query('SHOW TABLES')),0); 
Cuestiones relacionadas