温馨提示×

ubuntu thinkphp如何导入数据

小樊
45
2026-10-13 10:32:53
栏目: 编程语言

在 Ubuntu + ThinkPHP 环境下“导入数据”,常见有几种场景。下面按最常用方式给你说明,你可以对照自己的需求选。


一、通过 SQL 文件导入(数据库层面,最常用)

适合:整库、整表导入(如 .sql 文件)

1. 进入 Ubuntu 服务器

ssh user@your_server_ip

2. 使用 MySQL 导入

mysql -u 用户名 -p 数据库名 < /path/to/data.sql

示例:

mysql -u root -p test_db < /home/ubuntu/data.sql

若 ThinkPHP 使用的是 MySQL / MariaDB,这是最快方式。


二、ThinkPHP 中使用 SQL 导入

适合:在代码中执行 SQL 文件

方式 1:execute

Db::execute(file_get_contents('./data.sql'));

方式 2:命令行(推荐)

php think db:execute < data.sql

三、ThinkPHP 模型批量导入(代码方式)

适合:Excel / CSV / API 数据

示例:数组批量插入

use app\model\User;

$data = [
    ['name' => '张三', 'age' => 20],
    ['name' => '李四', 'age' => 22],
];

User::insertAll($data);

四、Excel / CSV 导入(常见业务需求)

1. 安装依赖

composer require phpoffice/phpspreadsheet

2. 读取 Excel 并导入

use PhpOffice\PhpSpreadsheet\IOFactory;
use app\model\User;

$spreadsheet = IOFactory::load('test.xlsx');
$sheet = $spreadsheet->getActiveSheet();
foreach ($sheet->toArray() as $row) {
    User::create([
        'name' => $row[0],
        'age'  => $row[1]
    ]);
}

五、ThinkPHP 迁移 & 种子(开发环境)

迁移(建表)

php think migrate:run

数据填充

php think seed:run

六、常见问题(Ubuntu 下)

1. 权限问题

sudo chmod -R 755 /var/www/html
sudo chown -R www-data:www-data /var/www/html

2. 上传文件大小限制

修改:

sudo vim /etc/php/8.1/apache2/php.ini
upload_max_filesize = 20M
post_max_size = 20M

你可以告诉我:

  • ✅ 是 SQL 文件 还是 Excel/CSV
  • ✅ ThinkPHP 版本(5.1 / 6.0 / 8.0)
  • ✅ 本地还是服务器(Ubuntu)

我可以给你精确命令或代码。

0 踩