Ich habe mich umgesehen und kann immer noch nicht finden, wie alle meine Tabellen in einer Datenbank aufgelistet werden. ist es möglich mit MySQLi?Liste aller Tabellen in einer Datenbank mit MySQLi
Danke.
Ich habe mich umgesehen und kann immer noch nicht finden, wie alle meine Tabellen in einer Datenbank aufgelistet werden. ist es möglich mit MySQLi?Liste aller Tabellen in einer Datenbank mit MySQLi
Danke.
Es gibt viele Möglichkeiten.
SHOW TABLES
Ist die einfachste SQL-Anweisung dafür. Sie können auch einen Blick auf INFORMATION_SCHEMA.TABLES
werfen, wenn Sie mehr Details haben wollen oder etwas filtern oder ähnliches.
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE 'your_database';
Ich würde versuchen, so etwas wie: https://devzone.zend.com/13/php-101-part-8-databases-and-other-animals_part-2/ (EDIT:
function get_tables()
{
$tableList = array();
$res = mysqli_query($this->conn,"SHOW TABLES");
while($cRow = mysqli_fetch_array($res))
{
$tableList[] = $cRow[0];
}
return $tableList;
}
Sie könnten auch diese in Abschöpfen Interesse Link verweist auf MySQL API und nicht Mysqli, aber die meisten Anrufe tun ein mysqli parallel).
HTH
hier ist wenig Beispiel
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);
Anstatt diese Klasse als Wrapper zu erstellen, nur um prozedurale Funktionen zu verwenden, müssen Sie sollte nur die MySQLi-Klasse verwenden. –
PHP 5.5 oder höher, eine einfache Lösung ist die Verwendung von PHP built-in array_column() Funktion.
$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 –