红穆笔记
首頁 語言筆記 php查詢mysql數據庫,獲取每個表,然後輸出每個表前八條數據。
語言筆記 PHP mySql

php查詢mysql數據庫,獲取每個表,然後輸出每個表前八條數據。

php查询mysql数据库,获取每个表,然后输出每个表前八条数据。

php代碼

<?php
/**
 * 導出 MySQL 數據庫的表結構及每個表的前 8 條數據
 * 數據按 id 倒序(若無 id 則按主鍵/第一列倒序)
 * 數據庫:111,用戶名:11111,密碼:1111
 */

$host = 'localhost';
$user = '1111';
$pass = '11111111111111111';
$dbname = '111';

$conn = new mysqli($host, $user, $pass, $dbname);
if ($conn->connect_error) {
    die("連接失敗: " . $conn->connect_error);
}
$conn->set_charset("utf8mb4");

// 輸出文件頭
echo "-- 導出數據庫: $dbname\n";
echo "-- 生成時間: " . date('Y-m-d H:i:s') . "\n";
echo "-- 每個表導出前 8 條數據,按 id(或主鍵/首列)倒序排列\n\n";
echo "SET FOREIGN_KEY_CHECKS=0;\n\n";

// 獲取所有表
$tablesResult = $conn->query("SHOW TABLES");
if (!$tablesResult) {
    die("獲取表列表失敗: " . $conn->error);
}

while ($row = $tablesResult->fetch_row()) {
    $table = $row[0];

    // 1. 導出表結構
    $createResult = $conn->query("SHOW CREATE TABLE `$table`");
    if (!$createResult) {
        echo "-- 無法獲取表 `$table` 的結構,跳過\n\n";
        continue;
    }
    $createRow = $createResult->fetch_assoc();
    $createSQL = $createRow['Create Table'];

    echo "-- 表結構: `$table`\n";
    echo "DROP TABLE IF EXISTS `$table`;\n";
    echo $createSQL . ";\n\n";

    // 2. 獲取表的列名,確定排序字段(優先 id,其次主鍵,最後第一列)
    $colsResult = $conn->query("SHOW COLUMNS FROM `$table`");
    $colNames = [];
    while ($col = $colsResult->fetch_assoc()) {
        $colNames[] = $col['Field'];
    }
    $orderCol = null;
    if (in_array('id', $colNames)) {
        $orderCol = 'id';
    } else {
        // 嘗試獲取主鍵
        $pkQuery = $conn->query("SHOW KEYS FROM `$table` WHERE Key_name = 'PRIMARY'");
        if ($pkQuery && $pkQuery->num_rows > 0) {
            $pkRow = $pkQuery->fetch_assoc();
            $orderCol = $pkRow['Column_name'];
        } else {
            // 取第一列(如果存在)
            $orderCol = $colNames[0] ?? null;
        }
    }

    // 構建 ORDER BY 子句
    $orderClause = $orderCol ? "ORDER BY `$orderCol` DESC" : "";

    // 3. 導出前 8 條數據(按指定字段倒序)
    $dataResult = $conn->query("SELECT * FROM `$table` $orderClause LIMIT 8");
    if (!$dataResult) {
        echo "-- 無法查詢表 `$table` 的數據,跳過\n\n";
        continue;
    }

    if ($dataResult->num_rows > 0) {
        // 獲取字段列表
        $fields = $dataResult->fetch_fields();
        $fieldNames = array_map(function($f) {
            return "`" . $f->name . "`";
        }, $fields);
        $fieldList = implode(", ", $fieldNames);

        // 組裝多行 INSERT
        $insertPrefix = "INSERT INTO `$table` ($fieldList) VALUES ";
        $rows = [];
        while ($dataRow = $dataResult->fetch_assoc()) {
            $values = [];
            foreach ($dataRow as $key => $val) {
                if ($val === null) {
                    $values[] = "NULL";
                } else {
                    $escaped = $conn->real_escape_string($val);
                    $values[] = "'" . $escaped . "'";
                }
            }
            $rows[] = "(" . implode(", ", $values) . ")";
        }
        echo $insertPrefix . implode(", ", $rows) . ";\n\n";
    }
    $dataResult->free();
}

$tablesResult->free();
echo "SET FOREIGN_KEY_CHECKS=1;\n";
$conn->close();

 

微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

網站管理員 · 感謝閱讀,更多精彩內容敬請關注

作者主頁 查看主頁 →

相關文章

PHP ob函数记录

PHP ob函數記錄 語言筆記 PHP

下面3個函數的用法 ob_get_contents(); ob_end_clean(); ob_start(); 可以藉助這幾個函數實現緩衝本地文件,以及執行本地腳本代碼。 使用ob_start()把輸出的代碼存到緩衝區,頁面不會顯示出來; 然後用ob_get_contents得到緩衝區的數據。 o…
👁 140
PHP preg

PHP preg 語言筆記 PHP

preg_match_all 函數用於執行一個全局正則表達式匹配。preg_match_all() 語法int preg_match_all ( string $pattern , string $subject [, array &amp;$matches [, int $flags = PREG…
👁 169
PHP 三元运算符与if的详解

PHP 三元運算符與if的詳解 語言筆記 PHP

三元運算符語條件 ? 結果1 : 結果2 說明:問號前面的位置是判斷的條件,如果滿足條件時結果1,不滿足時結果2。本文對三元運算符和if...else...進行對比詳解,希望對大家有所幫助。今天在改論文在線的時候遇到了一個語句看不懂:$if_summary = $row['IF_SUMMARY']=…
👁 188
PHP强制转换类型

PHP強制轉換類型 語言筆記 PHP PHP採集 PHP與mysql

獲取數據類型1.如果想查看某個表達式的值和類型,用var_dump()。 2.如果只是想得到一個易讀懂的類型的表達方式用於調試,用 gettype()。3.要查看某個類型,不要用 gettype(),而用is_type() 函數。字符串轉換爲數值當一個字符串被當作數字來求值時,根據以下規則來決定結果…
👁 232

推薦閱讀

品牌策划设计企业通用类网站模板 1121

品牌策劃設計企業通用類網站模板 1121 實用收藏 易優模板

一款針對品牌策劃設計企業通用類網站的eyoucms模板。設計風格創意專業,能夠展示品牌策劃、設計案例、創意理念及服務內容。有助於品牌策劃公司在線上展示專業實力,吸引企業客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優…
👁 67
家居厨房电器用品类网站模板 0881

家居廚房電器用品類網站模板 0881 實用收藏 易優模板

此套eyoucms模板適用於家居、廚房與電器用品類行業,設計風格現代實用,能夠展示廚房電器、家居用品產品及品牌形象。有助於家居電器品牌在線上展示產品,吸引家庭消費者。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS(…
👁 51
响应式灭火器干粉消防器材网站模板 0622

響應式滅火器乾粉消防器材網站模板 0622 實用收藏 易優模板

此套eyoucms響應式模板適用於滅火器、乾粉及消防器材類企業,設計風格醒目專業,能夠展示消防產品、安全設備及工程案例。有助於消防器材企業在線上展示產品,吸引企業與政府採購。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優…
👁 53
职业教育培训机构网站模板 0374

職業教育培訓機構網站模板 0374 實用收藏 易優模板

一款針對職業教育培訓機構的eyoucms網站模板。設計風格專業教育,能夠展示職業教育課程、培訓項目、就業服務及師資力量。有助於職業培訓機構在線上吸引學員,提升品牌知名度。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CM…
👁 39
QQ个性空间日志新闻资讯网站模板 0136

QQ個性空間日誌新聞資訊網站模板 0136 實用收藏 易優模板

一款針對QQ個性空間、日誌與新聞資訊類網站的eyoucms模板。設計風格清新文藝,適合分享情感日誌、個性簽名、空間美文及資訊動態。有助於個人站長或博主搭建個性化內容分享平臺。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優…
👁 29