Làm cách nào để sao lưu trong PHP?

Đầu tiên, tôi lấy đối tượng kết nối cơ sở dữ liệu để lấy lược đồ bảng và dữ liệu được kết xuất vào một tệp. Tôi đọc tất cả các tên bảng từ cơ sở dữ liệu và lưu vào một mảng

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách tạo bản sao lưu cơ sở dữ liệu bằng PHP. Điều này sẽ hoạt động với PHP 7 và các phiên bản cao hơn của nó

Tôi đã viết một hàm để xuất cơ sở dữ liệu ở đây

select_db($name); 
        $mysqli->query("SET NAMES 'utf8'");

        $queryTables    = $mysqli->query('SHOW TABLES'); 
        while($row = $queryTables->fetch_row()) 
        { 
            $target_tables[] = $row[0]; 
        }   
        if($tables !== false) 
        { 
            $target_tables = array_intersect( $target_tables, $tables); 
        }
        foreach($target_tables as $table)
        {
            $result         =   $mysqli->query('SELECT * FROM '.$table);  
            $fields_amount  =   $result->field_count;  
            $rows_num=$mysqli->affected_rows;     
            $res            =   $mysqli->query('SHOW CREATE TABLE '.$table); 
            $TableMLine     =   $res->fetch_row();
            $content        = (!isset($content) ?  '' : $content) . "\n\n".$TableMLine[1].";\n\n";

            for ($i = 0, $st_counter = 0; $i < $fields_amount;   $i++, $st_counter=0) 
            {
                while($row = $result->fetch_row())  
                { //when started (and every after 100 command cycle):
                    if ($st_counter%100 == 0 || $st_counter == 0 )  
                    {
                            $content .= "\nINSERT INTO ".$table." VALUES";
                    }
                    $content .= "\n(";
                    for($j=0; $j<$fields_amount; $j++)  
                    { 
                        $row[$j] = str_replace("\n","\\n", addslashes($row[$j]) ); 
                        if (isset($row[$j]))
                        {
                            $content .= '"'.$row[$j].'"' ; 
                        }
                        else 
                        {   
                            $content .= '""';
                        }     
                        if ($j<($fields_amount-1))
                        {
                                $content.= ',';
                        }      
                    }
                    $content .=")";
                    //every after 100 command cycle [or at last line] ....p.s. but should be inserted 1 cycle eariler
                    if ( (($st_counter+1)%100==0 && $st_counter!=0) || $st_counter+1==$rows_num) 
                    {   
                        $content .= ";";
                    } 
                    else 
                    {
                        $content .= ",";
                    } 
                    $st_counter=$st_counter+1;
                }
            } $content .="\n\n\n";
        }
        
        $backup_name = $name.".sql";
        header('Content-Type: application/octet-stream');   
        header("Content-Transfer-Encoding: Binary"); 
        header("Content-disposition: attachment; filename=\"".$backup_name."\"");  
        echo $content; exit;
    }



?>

tiếng kêu. đó là tất cả. chỉ cần chạy chức năng này và cơ sở dữ liệu của bạn sẽ tải xuống dưới dạng. tệp SQL

kiểm tra thêm các hướng dẫn liên quan đến PHP

Tải xuống mã nguồn.  

Làm cách nào để sao lưu trong PHP?

Sao lưu cơ sở dữ liệu là một nhiệm vụ quan trọng nhất đối với mọi nhà phát triển web. Sao lưu cơ sở dữ liệu thường xuyên ngăn ngừa rủi ro mất dữ liệu và giúp khôi phục cơ sở dữ liệu nếu có sự cố xảy ra. Vì vậy, sao lưu cơ sở dữ liệu bất cứ khi nào có thể là một ý tưởng hay

Có nhiều cách để sao lưu cơ sở dữ liệu MySQL trong một tệp và bạn có thể sao lưu cơ sở dữ liệu chỉ bằng một cú nhấp chuột từ máy chủ lưu trữ. Nhưng nếu bạn muốn sao lưu cơ sở dữ liệu MySQL mà không cần đăng nhập vào máy chủ lưu trữ hoặc phpMyAdmin, bạn có thể thực hiện việc đó từ tập lệnh bằng PHP. Trong hướng dẫn này, chúng tôi sẽ xây dựng một tập lệnh PHP để sao lưu cơ sở dữ liệu MySQL và lưu trong tệp SQL

Thực hiện sao lưu cơ sở dữ liệu MySQL bằng PHP

Tất cả mã PHP sẽ được nhóm lại với nhau trong hàm backupDatabaseTables(). Sử dụng chức năng backupDatabaseTables(), bạn có thể sao lưu các bảng cụ thể hoặc tất cả các bảng từ cơ sở dữ liệu. Các tham số sau được yêu cầu để sao lưu cơ sở dữ liệu MySQL bằng PHP

  • $dbHost – Bắt buộc. Chỉ định máy chủ của cơ sở dữ liệu
  • $dbUsername – Bắt buộc. Chỉ định tên người dùng cơ sở dữ liệu
  • $dbPassword – Bắt buộc. Chỉ định mật khẩu cơ sở dữ liệu
  • $dbName – Bắt buộc. Chỉ định cơ sở dữ liệu mà bạn muốn sao lưu
  • $tables – Tùy chọn. Chỉ định tên bảng trong chuỗi hoặc mảng được phân tách bằng dấu phẩy. Bỏ qua tham số này để sao lưu tất cả các bảng của cơ sở dữ liệu
/**
 * @function    backupDatabaseTables
 * @author      CodexWorld
 * @link        http://www.codexworld.com
 * @usage       Backup database tables and save in SQL file
 */
function backupDatabaseTables($dbHost,$dbUsername,$dbPassword,$dbName,$tables = '*'){
    //connect & select the database
    $db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);
    //get all of the tables
    if($tables == '*'){
        $tables = array();
        $result = $db->query("SHOW TABLES");
        while($row = $result->fetch_row()){
            $tables[] = $row[0];
        }
    }else{
        $tables = is_array($tables)?$tables:explode(',',$tables);
    }
    //loop through the tables
    foreach($tables as $table){
        $result = $db->query("SELECT * FROM $table");
        $numColumns = $result->field_count;
        $return .= "DROP TABLE $table;";
        $result2 = $db->query("SHOW CREATE TABLE $table");
        $row2 = $result2->fetch_row();
        $return .= "\n\n".$row2[1].";\n\n";
        for($i = 0; $i < $numColumns; $i++){
            while($row = $result->fetch_row()){
                $return .= "INSERT INTO $table VALUES(";
                for($j=0; $j < $numColumns; $j++){
                    $row[$j] = addslashes($row[$j]);
                    $row[$j] = ereg_replace("\n","\\n",$row[$j]);
                    if (isset($row[$j])) { $return .= '"'.$row[$j].'"' ; } else { $return .= '""'; }
                    if ($j < ($numColumns-1)) { $return.= ','; }
                }
                $return .= ");\n";
            }
        }
        $return .= "\n\n\n";
    }
    //save file
    $handle = fopen('db-backup-'.time().'.sql','w+');
    fwrite($handle,$return);
    fclose($handle);
}

Cách sử dụng.
Sử dụng hàm backupDatabaseTables() trong PHP để tạo bản sao lưu cơ sở dữ liệu MySQL và lưu trong tệp SQL.

backupDatabaseTables('localhost','root','*****','codexworld');

Khôi phục/Nhập cơ sở dữ liệu MySQL từ tệp SQL bằng PHP

Bạn có muốn nhận trợ giúp triển khai hay sửa đổi hoặc nâng cao chức năng của tập lệnh này không?

Làm cách nào để tạo bản sao lưu trong PHP MySQL?

Cách sao lưu cơ sở dữ liệu MySQL .
Mở phpMyAdmin từ bảng điều khiển lưu trữ web của bạn như cPanel
Chọn cơ sở dữ liệu từ bảng điều hướng thanh bên của phpMyAdmin
Nhấp vào liên kết Xuất từ ​​thanh điều hướng trên cùng
Chọn tùy chọn Tùy chỉnh trong trang Xuất
Chọn các bảng mà bạn muốn sao lưu

Làm cách nào để sao lưu MySQL?

MySQL Workbench để sao lưu cơ sở dữ liệu .
Trên bảng Quản trị, nhấp vào Xuất dữ liệu. .
Trên tab Chọn đối tượng > Bảng để xuất, hãy chọn lược đồ sakila
Trong Tùy chọn Xuất, hãy chọn Xuất sang Thư mục Dự án Kết xuất nếu bạn muốn các bảng cơ sở dữ liệu được lưu trữ riêng biệt. .
Để tạo tệp sao lưu, hãy nhấp vào Bắt đầu xuất

Làm cách nào để xuất cơ sở dữ liệu bằng PHP?

Trước khi bạn bắt đầu .
Đăng nhập vào phpMyAdmin
Chọn cơ sở dữ liệu nguồn ở khung bên trái
Nhấp vào tab Xuất trong ngăn chính giữa trên cùng
Trên trang tiếp theo, bạn phải chọn phương thức xuất Nhanh hoặc Tùy chỉnh. .
Từ menu thả xuống, chọn định dạng bạn muốn lưu tệp dưới dạng. .
Nhấp vào nút Bắt đầu để tiếp tục

Làm cách nào để khôi phục cơ sở dữ liệu MySQL trong PHP?

Khôi phục. $dbhost = 'máy chủ cục bộ'; . /khôi phục/kiểm tra. sql"; exec("D. /xampp/mysql/bin/mysql --opt -h $dbhost -u $dbuser -p $dbpass $dbname < $output"); echo "Khôi phục hoàn tất. "; Nhưng cả hai đều không hoạt động