tablas - obtener nombre de columnas mysqli php
¿Cómo obtener los nombres de las columnas de la tabla en una base de datos en zend? (2)
Estoy creando una aplicación en zend donde el usuario ingresará el host, el nombre de la base de datos, el nombre de usuario y la contraseña para conectar la base de datos y también podrá recuperar las tablas y columnas en las tablas para comenzar a trabajar.
Estoy usando este código para obtener las tablas en una base de datos:
$ExternalDb = new Zend_Db_Adapter_Pdo_Mysql(array(
''host'' => $host,
''username'' => $user,
''password'' => $pass,
''dbname'' => $dbName
));
try{
//Create connection
echo $ExternalDb->getConnection()->getAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY);
foreach($ExternalDb->listTables() as $table){
//$table = new $table(array(''db'' => $ExternalDb)); it doesn''t work
echo "<pre>";
print_r($table);
//$cols = $table->info(Zend_Db_Table_Abstract::COLS); It doesn''t work
echo "</pre>";
}
} catch (Exception $ex) {
echo $ex;
}
Puedo obtener los nombres de las tablas, pero estoy tratando de obtener los nombres de las columnas también ...
¡Gracias por adelantado!
Otra forma sin Zend_Db_Table_Abstract
, directamente con Zend_Db_Adapter
, puede usar el método de describeTable()
:
foreach($ExternalDb->listTables() as $table){
$describ = $ExternalDb->describeTable($table);
foreach($describ as $col_name => $col_desc){
var_dump($col_name);
}
}
Puede recuperar información de Zend_Db_Table_Abstract
.
Crea una nueva clase como esta:
class foo extends Zend_Db_Table_Abstract
{
}
En tu código:
foreach($ExternalDb->listTables() as $table){
$dbTable = new foo($ExternalDb);
$dbTable->setOptions(array($dbTable::NAME => $table));
var_dump($dbTable->info($dbTable::COLS));
unset($dbTable);
}