PHPMyAdminはどうやってSQLをダンプしているのか


`mysqldump`を使えば一瞬ですが、`PHPMyAdmin`は`mysqldump`が無くても動くというので、裏側でどういった処理を行っているのでしょうか？PHPだけでどうやってSQLをダンプしているのか、気になります。

お恥ずかしいですが、ソース読んでも膨大すぎてさっぱりだったので、何方かご教示頂けたら幸いです。

ちなみに、「[WP Migrate DB](https://deliciousbrains.com/wp-migrate-db-
pro/)」というWordPressのプラグインがあるのですが、こちらも気になりますね。




phpMyAdmin-4.3.7 のソースコードを眺めてみました。  
おそらく質問者様の言われている「ダンプ」と「mysqldump」の処理内容である「ダンプ」とは意味が異なるのではないかと思われます。以下は、phpMyAdmin
のメニューで **「Dump all rows」** を選んだ場合の処理です(単一のテーブルが対象)。  
コメントに書かれてある様に、「Dump all rows」、すなわち、`SELECT * FROM ...` としている様です。メニューに「Dump all
rows」ではなく「Select all rows」と書いてあれば、すぐに分かったのではないかと思いますが。。。

※ もちろん、これとは別に `mysqldump` コマンドを使用して複数のテーブルの内容をダンプする機能があります(EXPORT with SQL)。

`phpMyAdmin-4.3.7-all-languages/libraries/export.lib.php`

[code]

    function PMA_exportTable
               :
    // We export just one table
    // $allrows comes from the form when "Dump all rows" has been selected
    if (! isset($allrows)) {
        $allrows = '';
    }
    if (! isset($limit_to)) {
        $limit_to = 0;
    }
    if (! isset($limit_from)) {
        $limit_from = 0;
    }
    PMA_exportTable(
        $db, $table, $whatStrucOrData, $export_plugin, $crlf, $err_url,
        $export_type, $do_relation, $do_comments, $do_mime, $do_dates,
        $allrows, $limit_to, $limit_from, $sql_query, $aliases
    );
    
[/code]

`phpMyAdmin-4.3.7-all-languages/libraries/export.lib.php`

[code]

    function PMA_exportTable(
              :
        if (! empty($sql_query)) {
              :
        } else {
            $local_query  = 'SELECT * FROM ' . PMA_Util::backquote($db)
                . '.' . PMA_Util::backquote($table) . $add_query;
        }
    
[/code]




phpMyAdmin-4.3.7 のソースコードを眺めてみました。  
おそらく質問者様の言われている「ダンプ」と「mysqldump」の処理内容である「ダンプ」とは意味が異なるのではないかと思われます。以下は、phpMyAdmin
のメニューで **「Dump all rows」** を選んだ場合の処理です(単一のテーブルが対象)。  
コメントに書かれてある様に、「Dump all rows」、すなわち、`SELECT * FROM ...` としている様です。メニューに「Dump all
rows」ではなく「Select all rows」と書いてあれば、すぐに分かったのではないかと思いますが。。。

※ もちろん、これとは別に `mysqldump` コマンドを使用して複数のテーブルの内容をダンプする機能があります(EXPORT with SQL)。

`phpMyAdmin-4.3.7-all-languages/libraries/export.lib.php`

[code]

    function PMA_exportTable
               :
    // We export just one table
    // $allrows comes from the form when "Dump all rows" has been selected
    if (! isset($allrows)) {
        $allrows = '';
    }
    if (! isset($limit_to)) {
        $limit_to = 0;
    }
    if (! isset($limit_from)) {
        $limit_from = 0;
    }
    PMA_exportTable(
        $db, $table, $whatStrucOrData, $export_plugin, $crlf, $err_url,
        $export_type, $do_relation, $do_comments, $do_mime, $do_dates,
        $allrows, $limit_to, $limit_from, $sql_query, $aliases
    );
    
[/code]

`phpMyAdmin-4.3.7-all-languages/libraries/export.lib.php`

[code]

    function PMA_exportTable(
              :
        if (! empty($sql_query)) {
              :
        } else {
            $local_query  = 'SELECT * FROM ' . PMA_Util::backquote($db)
                . '.' . PMA_Util::backquote($table) . $add_query;
        }
    
[/code]

