萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

PHP 獲取 MySQL 所有表名:SHOW TABLES 實戰與擴展用法

核心代碼

<?php
$server = 'localhost';
$user = 'root';
$pass = '';
$dbname = 'dayanmei_com';

$conn = mysql_connect($server, $user, $pass);
if (!$conn) die("數據庫連接失敗!");
mysql_select_db($dbname) or die("選擇數據庫失敗!");

$result = mysql_query("SHOW TABLES");
while ($row = mysql_fetch_array($result)) {
    echo $row[0] . "<br>";
}
mysql_free_result($result);
?>

注意:mysql_* 擴展已棄用 (PHP 5.5+) 並移除 (PHP 7.0+),**生產環境請用 mysqli 或 PDO**。

現代寫法

mysqli 面向對象

$mysqli = new mysqli("localhost", "root", "", "dayanmei_com");
$result = $mysqli->query("SHOW TABLES");
while ($row = $result->fetch_row()) {
    echo $row[0] . "<br>";
}
$result->free();
$mysqli->close();

PDO

$pdo = new PDO("mysql:host=localhost;dbname=dayanmei_com;charset=utf8mb4", "root", "");
$stmt = $pdo->query("SHOW TABLES");
while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
    echo $row[0] . "<br>";
}

SHOW 命令擴展用法

命令用途支持 LIKE
SHOW DATABASES列出所有數據庫是
SHOW TABLES [FROM db_name]列出表/視圖是
SHOW COLUMNS FROM tbl [FROM db]表結構 (等同 DESC)是
SHOW INDEX FROM tbl [FROM db]索引信息否
SHOW STATUS服務器狀態變量是
SHOW VARIABLES配置參數是
SHOW PROCESSLIST當前線程否
SHOW TABLE STATUS [FROM db]表詳細狀態 (行數、大小、引擎...)是
SHOW GRANTS FOR user用戶權限否

LIKE 通配符示例

SHOW DATABASES LIKE '%test';   -- 以 test 結尾的庫
SHOW TABLES FROM mydb LIKE 'log_%';  -- log_ 開頭的表

等價寫法

db_name.tbl_name 可替代 tbl_name FROM db_name,更簡潔:SHOW COLUMNS FROM mydb.users;

權限提示

用戶無表任何權限時,該表不會出現在 SHOW TABLES 結果中。

copyright © 萬盛學電腦網 all rights reserved