


Comment utiliser ThinkPHP6 pour implémenter la sauvegarde et la récupération de bases de données
Dans le processus de développement de systèmes d'entreprise, la base de données est un élément très important. Par conséquent, la sauvegarde et la restauration de la base de données sont une opération très nécessaire. Cet article combinera des exemples du framework ThinkPHP6 pour présenter comment utiliser ThinkPHP6 pour implémenter la sauvegarde et la récupération de bases de données.
1. Sauvegarde de la base de données
1.1 Préparation de l'environnement
Avant d'effectuer la sauvegarde de la base de données, vous devez confirmer les points suivants :
1 Vous devez définir l'adresse du répertoire bin de la base de données mysql et ajouter son chemin au chemin système. variable ;
2. L'outil de ligne de commande mysqldump doit être installé
3. Confirmez que sur la machine où se trouve la base de données, l'utilisateur qui effectue la sauvegarde a le droit d'exécuter la commande mysqldump sur la base de données.
1.2 Implémentation de la sauvegarde de la base de données
1.2.1 Configurer les paramètres de sauvegarde
Créez le fichier database.php dans le dossier de configuration, définissez les informations de connexion à la base de données et les paramètres requis pour la sauvegarde.
<?php return [ // 数据库类型 'type' => 'mysql', // 数据库连接DSN配置 'dsn' => '', // 服务器地址 'hostname' => 'localhost', // 数据库名 'database' => 'test', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => 'root', // 数据库连接端口 'hostport' => '3306', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'think_', // 数据库调试模式 'debug' => false, // 数据库备份路径,没有则自动创建 'path' => '', // 数据库备份卷大小,单位为字节,设为0表示不限制备份大小 'part' => 20971520, // 数据库备份文件压缩格式,这里是gzip 'compress' => 'gzip', // 数据库备份文件名 'filename' => '', // 数据库备份文件是否需要压缩 'zip' => true, // 数据库备份文件是否需要分卷备份 'split' => true, // 数据库备份时是否将存储过程和触发器一起备份 'level' => 9, // 数据库备份文件的存储路径,最好为绝对路径,这也是最关键的路径 'path' => '/data/mysql/', ];
1.2.2 Écrire le code de sauvegarde
Créez le fichier BackupController.php sous app/controller et ajoutez le code suivant.
<?php declare(strict_types=1); namespace appcontroller; use thinkacadeDb; class BackupController { protected $backupConfig; public function __construct() { $this->backupConfig = config('database'); } public function backup() { // 防止备份数据过程超时 set_time_limit(0); $database = $this->backupConfig['database']; $filename = date('Ymd-His', time()) . ".sql"; $path = $this->backupConfig['path'].$filename; // 检查目录是否存在或者是否有权限写入 if(!is_dir($this->backupConfig['path'])){ mkdir($this->backupConfig['path'], 0755, true); }else{ if(!is_writeable($this->backupConfig['path'])){ chmod($this->backupConfig['path'], 0755); } } // 备份所有数据表 $result = Db::query("SHOW TABLES"); $tables = array(); foreach($result as $index => $row){ $tables[] = $row['Tables_in_'.$database]; } // 备份所有表结构和表数据 $content = ''; foreach($tables as $table){ $content = $content . "/*" . PHP_EOL; $content = $content . "表名:" . $table . PHP_EOL; $content = $content . "表结构:" . PHP_EOL; $content = $content . "*/" . PHP_EOL; $content = $content . $this->backupTableSchema($table); $content = $content . "/*" . PHP_EOL; $content = $content . "表数据:" . PHP_EOL; $content = $content . "*/" . PHP_EOL; $content = $content . $this->buildInsertSql($table); } // 是否需要压缩 if ($this->backupConfig['zip']) { $zip = new ZipArchive(); $zipfilename = $this->backupConfig['path'] . date('Ymd-His', time()) . ".zip"; if ($zip->open($zipfilename, ZipArchive::OVERWRITE) === TRUE) { $zip->addFile($path,$filename); $zip->close(); // 删除非压缩的文件 unlink($path); } else { // 备份失败 } } } // 备份表结构 protected function backupTableSchema($table) { $database = $this->backupConfig['database']; $result = Db::query("SHOW CREATE TABLE `" . $table . "`"); $create = $result[0]['Create Table'] . ";" . PHP_EOL.PHP_EOL; return $create; } // 备份表数据 protected function buildInsertSql($table) { $database = $this->backupConfig['database']; $result = Db::query("SELECT * FROM `" . $table . "`"); $insert = ''; foreach ($result as $key => $value) { $keys = array_keys($value); $values = array_map(array(Db::class, 'quote'), array_values($value)); $values = join(",", $values); $insert .= "INSERT INTO `" . $table . "` (`" . join("`,`", $keys) . "`) VALUES (" . $values . ");" . PHP_EOL; } $insert .= PHP_EOL; return $insert; } }
1.2.3 Effectuer une sauvegarde
Entrez l'adresse URL suivante dans le navigateur pour effectuer la sauvegarde :
http://localhost/backup/backup
1.3 Récupération de la base de données
1.3.1 Écrire le code de récupération
Créez le fichier RecoveryController.php sous app/controller, et ajoutez le code suivant.
<?php declare(strict_types=1); namespace appcontroller; use thinkacadeDb; class RecoveryController { protected $backupConfig; public function __construct() { $this->backupConfig = config('database'); } public function recovery() { // 防止还原数据过程超时 set_time_limit(0); ini_set('memory_limit', '1024M'); $filename = input('get.filename'); // 读取备份文件 if ($this->backupConfig['zip']) { $zip = new ZipArchive(); if ($zip->open($this->backupConfig['path'].$filename) === true) { $filename = $zip->getNameIndex(0); $zip->extractTo($this->backupConfig['path']); $zip->close(); } } $content = file_get_contents($this->backupConfig['path'] . $filename); // 使用";"分割内容 $statements = explode(";", $content); // 开始事务 Db::startTrans(); foreach ($statements as $index => $stmt) { if (trim($stmt) === '') { continue; } $results = Db::query($stmt); if ($results === false) { Db::rollback(); return false; } } // 提交事务 Db::commit(); // 删除非压缩的文件 unlink($this->backupConfig['path'] . $filename); return true; } }
1.3.2 Effectuer une récupération
Entrez l'adresse URL suivante dans le navigateur pour effectuer la récupération :
http://localhost/recovery/recovery?filename=20200101-121212.sql.zip
Ce qui précède est la méthode d'implémentation de sauvegarde et de récupération de base de données dans ThinkPHP6. Les lecteurs peuvent appliquer le code à leurs propres projets, qui. est flexible Utilisez ces conseils pour rendre votre entreprise plus robuste et plus fiable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Ouvrez WeChat, sélectionnez Paramètres dans Moi, sélectionnez Général, puis sélectionnez Espace de stockage, sélectionnez Gestion dans Espace de stockage, sélectionnez la conversation dans laquelle vous souhaitez restaurer les fichiers et sélectionnez l'icône de point d'exclamation. Didacticiel Modèle applicable : iPhone13 Système : iOS15.3 Version : WeChat 8.0.24 Analyse 1 Ouvrez d'abord WeChat et cliquez sur l'option Paramètres sur la page Ma. 2 Ensuite, recherchez et cliquez sur Options générales sur la page des paramètres. 3Cliquez ensuite sur Espace de stockage sur la page générale. 4 Ensuite, cliquez sur Gérer sur la page de l'espace de stockage. 5Enfin, sélectionnez la conversation dans laquelle vous souhaitez récupérer des fichiers et cliquez sur l'icône de point d'exclamation à droite. Supplément : les fichiers WeChat expirent généralement au bout de quelques jours. Si le fichier reçu par WeChat n'a pas été cliqué, le système WeChat l'effacera après 72 heures. Si le fichier WeChat a été consulté,

La navigation privée est un moyen très pratique de naviguer et de protéger votre vie privée lorsque vous surfez sur Internet sur votre ordinateur ou appareil mobile. Le mode de navigation privée empêche généralement le navigateur d'enregistrer votre historique de visites, de sauvegarder les cookies et les fichiers cache et d'empêcher le site Web que vous parcourez de laisser des traces dans le navigateur. Cependant, dans certains cas particuliers, nous pouvons être amenés à restaurer l'historique de navigation de la navigation incognito. Tout d’abord, il faut être clair : le but du mode de navigation privée est de protéger la vie privée et d’empêcher des tiers d’obtenir l’historique en ligne de l’utilisateur à partir du navigateur. Par conséquent, la navigation incognito

Sur Douyin, une courte plateforme vidéo pleine de créativité et de vitalité, nous pouvons non seulement profiter d'une variété de contenus passionnants, mais également avoir des communications approfondies avec des amis partageant les mêmes idées. Parmi eux, les étincelles de discussion sont un indicateur important de l’intensité de l’interaction entre les deux parties, et elles enflamment souvent par inadvertance les liens émotionnels entre nous et nos amis. Cependant, parfois pour certaines raisons, le chat spark peut être déconnecté. Alors, que devons-nous faire si nous voulons restaurer le chat spark ? Ce guide didacticiel vous apportera une introduction détaillée à la stratégie de contenu, dans l'espoir d'aider tout le monde. Comment restaurer l'étincelle du chat Douyin ? 1. Ouvrez la page de message Douyin et sélectionnez un ami avec qui discuter. 2. Envoyez des messages et discutez entre vous. 3. Si vous envoyez des messages en continu pendant 3 jours, vous pouvez obtenir le logo Spark. Tous les 3 jours, envoyez-vous des photos ou des vidéos

Comment restaurer l'album photo Xiaomi Cloud en local ? L'application Xiaomi Cloud Photo Album peut restaurer en local, mais la plupart des amis ne savent pas comment restaurer l'album photo Xiaomi Cloud en local. L'étape suivante consiste à restaurer l'album photo Xiaomi Cloud en local. Tutoriels graphiques de méthode locale, les utilisateurs intéressés viennent y jeter un oeil ! Comment restaurer l'album photo cloud Xiaomi en local 1. Ouvrez d'abord la fonction de paramètres dans le téléphone Xiaomi et sélectionnez [Avatar personnel] sur l'interface principale ; 2. Entrez ensuite dans l'interface du compte Xiaomi et cliquez sur la fonction [Service Cloud] ; passez à Xiaomi Pour la fonction de service cloud, sélectionnez [Cloud Backup] ; 4. Enfin, dans l'interface comme indiqué ci-dessous, cliquez sur [Cloud Album] pour restaurer l'album en local.

Pour exécuter le projet ThinkPHP, vous devez : installer Composer ; utiliser Composer pour créer le projet ; entrer dans le répertoire du projet et exécuter php bin/console serve ; visiter http://localhost:8000 pour afficher la page d'accueil.

La mise à jour de mai 2019 de Windows 10 propose un nouvel arrière-plan de bureau par défaut plus lumineux. Cela a fière allure - avec le nouveau thème de lumière. Si vous utilisez le thème sombre de Windows 10, vous souhaiterez peut-être un arrière-plan plus sombre. Étrangement, l'arrière-plan du bureau d'origine de Windows 10 a été supprimé de la dernière version de Windows 10. Vous devez le télécharger depuis le Web ou copier ses fichiers depuis un ancien PC Windows 10. Bien que nous n'ayons pas pu trouver cette image de fond d'écran sur le site officiel de Microsoft, vous pouvez la télécharger à partir d'autres sources. Nous avons trouvé une copie du fond d’écran original de Windows 10 en résolution 4K sur Imgur. De plus, il existe d'autres tailles et davantage de murs par défaut

ThinkPHP dispose de plusieurs versions conçues pour différentes versions de PHP. Les versions majeures incluent 3.2, 5.0, 5.1 et 6.0, tandis que les versions mineures sont utilisées pour corriger les bogues et fournir de nouvelles fonctionnalités. La dernière version stable est ThinkPHP 6.0.16. Lorsque vous choisissez une version, tenez compte de la version PHP, des exigences en matière de fonctionnalités et du support de la communauté. Il est recommandé d'utiliser la dernière version stable pour de meilleures performances et une meilleure assistance.

Étapes pour exécuter ThinkPHP Framework localement : Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un hôte virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.
