He mirado alrededor y todavía no puedo encontrar cómo enumerar todas mis tablas en una base de datos. ¿es posible con MySQLi?enumere todas las tablas en una base de datos con MySQLi
Gracias.
He mirado alrededor y todavía no puedo encontrar cómo enumerar todas mis tablas en una base de datos. ¿es posible con MySQLi?enumere todas las tablas en una base de datos con MySQLi
Gracias.
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';
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
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);
En lugar de crear esta clase como un contenedor solo para usar funciones de procedimiento, debería usar la clase MySQLi. –
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);
http://dev.mysql.com/doc/refman/5.0/en/show-tables.html –