flex布局和子元素white-space: nowrap;导致宽度被拉长,元素变形的解决
解决方法:在使用了display:flex的子元素(含flex:1)的中加入width:0; 即在flex:1那里加width:0
解决方法:在使用了display:flex的子元素(含flex:1)的中加入width:0; 即在flex:1那里加width:0
当MySQL出现 "Table 'xxxx' is marked as crashed and should be repaired" 错误时,通常是由于表文件(索引或数据文件)损坏导致的。以下是修复该问题的详细步骤及注意事项:
首先需确认表的存储引擎类型(MyISAM或InnoDB),不同引擎的修复方法不同:
SHOW TABLE STATUS WHERE Name = 'xxxx';
REPAIR TABLE
命令在线修复(推荐):无需停止MySQL服务。
USE your_database;
REPAIR TABLE xxxx;
若失败,尝试附加选项:
REPAIR TABLE sc_sessions QUICK; -- 快速修复
REPAIR TABLE sc_sessions EXTENDED; -- 深度修复(耗时较长)
REPAIR TABLE sc_sessions USE_FRM; -- 当.MYI文件丢失时重建索引。
myisamchk
工具需停止MySQL服务:
sudo systemctl stop mysql
修复操作:
myisamchk -r /var/lib/mysql/your_database/sc_sessions.MYI
若仍失败,使用强制修复:
myisamchk -r -f /var/lib/mysql/your_database/xxxx.MYI
重启MySQL:
sudo systemctl start mysql
注意:修复后需检查文件权限(如所有权变更为 mysql:mysql
))。
ALTER TABLE xxxx ENGINE=InnoDB;
修改MySQL配置文件(如 my.cnf
):
[mysqld]
innodb_force_recovery = 1 # 值范围1-6,逐级尝试
重启MySQL并导出数据:
mysqldump -u root -p your_database xxxx > xxxx_backup.sql
mysqlcheck
工具(推荐用于在线修复)mysqlcheck -r your_database xxxx -u root -p
修复所有表:
mysqlcheck -r --all-databases -u root -p
/var/log/mysql/error.log
获取详细错误信息)。权限问题:使用 myisamchk
后,确保表文件权限正确:
chown -R mysql:mysql /var/lib/mysql/your_database.
定期优化表:
OPTIMIZE TABLE xxxx;
mysqlcheck
和备份任务)。若所有方法均失败:
mysqldump
或二进制日志恢复数据。.frm
文件重建表(仅MyISAM))。通过以上步骤,大多数表损坏问题可解决。
默认请求:composer require alipaysdk/easysdk
切换php版本请求:php8 D:\soft\phpstudy_pro\Extensions\composer2.5.8\composer.phar require alipaysdk/easysdk
php8 环境变量中的php8版本
D:softphpstudy_proExtensionscomposer2.5.8composer.phar composer对应的composer.phar
以下是 Git 的常用命令分类整理,覆盖日常开发中的核心操作场景:
git init
初始化本地 Git 仓库,生成 .git
目录。
git init
git clone <url>
克隆远程仓库到本地,支持 SSH/HTTPS 协议。
git clone https://github.com/user/repo.git
git add
将文件添加到暂存区(Staging Area)。
git add . # 添加所有修改
git add file.txt # 添加单个文件
git commit
提交暂存区的修改到本地仓库。
git commit -m "提交说明" # 常规提交
git commit -am "快速提交" # 跳过暂存,直接提交跟踪过的文件
git push
推送本地提交到远程仓库。
git push origin main
git pull
拉取远程仓库最新代码并合并到当前分支(相当于 git fetch
+ git merge
)。
git pull origin main
git fetch
仅下载远程仓库的更新,不自动合并(需手动 git merge
)。
git fetch --all
git branch
查看、创建或删除分支。
git branch # 列出本地分支
git branch -a # 列出所有分支(本地+远程)
git branch new-feature # 创建新分支
git branch -d old-branch # 删除分支
git checkout
切换分支或恢复文件。
git checkout main # 切换到 main 分支
git checkout -b dev # 创建并切换到 dev 分支
git merge
合并指定分支到当前分支。
git merge dev # 将 dev 分支合并到当前分支
git status
查看工作区和暂存区的文件状态。
git status
git diff
比较文件修改内容。
git diff # 比较工作区与暂存区
git diff --staged # 比较暂存区与最新提交
git diff HEAD~1 # 比较当前与上一次提交
git reset
撤销提交或取消暂存。
git reset HEAD~1 # 回退到上一次提交(保留修改)
git reset --hard HEAD~1 # 强制回退并丢弃修改
git restore
恢复文件到指定状态(Git 2.23+ 新增)。
git restore file.txt # 恢复工作区文件到最近提交
git restore --staged file.txt # 取消暂存
git stash
临时保存未提交的修改。
git stash # 暂存当前修改
git stash pop # 恢复最近一次暂存的修改
git log
查看提交历史。
git log --oneline # 简洁模式
git log --graph # 图形化分支历史
git tag
管理版本标签。
git tag v1.0.0 # 创建标签
git push --tags # 推送所有标签到远程
git remote
管理远程仓库关联。
git remote -v # 查看关联的远程仓库
git remote add origin <url> # 添加远程仓库
强制覆盖本地代码(与远程完全一致):
git fetch --all
git reset --hard origin/main
git pull
解决合并冲突:
git add
→ git commit
git mergetool
1(https://blog.csdn.net/qtiao/article/details/97783243)18(https://m.sohu.com/a/790599975_121118947/)同步新分支:
git checkout -b dev origin/dev # 拉取远程分支并切换
以上命令覆盖了 Git 日常使用的 90% 场景。如需更详细操作(如 git rebase
、git cherry-pick
等),可参考 Git 官方文档或相关教程 11(https://www.cnblogs.com/kenshinobiy/p/4543976.html)23(https://blog.csdn.net/m0_45234510/article/details/120181503)。
我来介绍 ThinkPHP 8 实现一个安全的 API 的完整流程:
1. 首先创建项目并安装必要依赖
composer create-project topthink/think tp8
cd tp8
composer require topthink/think-migration
2. 创建数据表迁移文件
php think make:migration create_users_table
php:database/migrations/xxx_create_users_table.php
<?php
use think\migration\Migrator;
class CreateUsersTable extends Migrator
{
public function change()
{
$this->table('users')
->addColumn('username', 'string', ['limit' => 50])
->addColumn('password', 'string', ['limit' => 255])
->addColumn('api_token', 'string', ['limit' => 100, 'null' => true])
->addColumn('status', 'boolean', ['default' => 1])
->addColumn('create_time', 'timestamp', ['null' => true])
->addColumn('update_time', 'timestamp', ['null' => true])
->create();
}
}