网站开发 小程序开发 APP开发 图片设计 UI设计 剪辑推广 运营策划

pbootcms亲测 SQLite 转 MySQL 纯净版下载 php文件 一键运行 免费

SQLite 转 MySQL 数据库转换工具 插件描述

简介

轻量单文件 PHP 工具,无需安装复杂软件,一键将 SQLite (.db) 数据库文件无损转换为 MySQL 标准 SQL 导入文件,自动适配字段类型、主键自增、数据表结构,完美兼容宝塔面板、phpMyAdmin 数据库迁移使用。

运行环境

  • PHP 版本:PHP 7.0 ~ PHP 8.3
  • 必备扩展:PDO、PDO_SQLite
  • 运行平台:宝塔 Linux 面板、Windows php 环境、本地 PHP 网站环境
  • 文件权限:755

功能特点

  1. 全自动解析 SQLite 数据表结构、字段类型、主键索引
  2. 智能适配 MySQL 字段格式,INT/TEXT/DATE/BLOB 类型自动转换
  3. 完整导出表结构 + 全部数据,数据零丢失、中文不乱码
  4. 生成标准纯净 SQL 文件,phpMyAdmin 直接导入可用
  5. 无需数据库连接、无需账号权限,上传.db 文件即可转换
  6. 单文件绿色插件,无冗余依赖,解压即用不占用服务器资源

使用方法

  1. 将工具上传至网站目录,浏览器访问运行
  2. 上传本地 SQLite .db 数据库文件
  3. 在线一键转换,下载生成 MySQL 数据库 SQL 文件
  4. 打开 phpMyAdmin,先选中目标数据库,导入 SQL 文件即可完成迁移

适用场景

小程序数据库迁移、本地.db 项目搬迁、CMS 数据库格式转换、站点数据迁移、轻量化数据库格式互通转换

 

复制以下代码
保存到服务器 命名 mysql.php

前端访问:域名/mysql.php  上传  点击开始转换  下载转换好的mysql文件 打开phpmyadmin上传即可

 一、支持的 PHP 版本

PHP 7.0 ~ PHP 8.3 全部完美运行

二、必须开启的 2 个扩展(宝塔默认都开了)

  1. PDO
  2. PDO_SQLite
99% 的宝塔环境 默认已经开启,不用你动!
运行环境:
PHP ≥ 7.0
开启扩展:PDO、PDO_SQLite
支持系统:Linux / Windows / 宝塔面板
文件权限:755

如果你宝塔里不知道怎么看

我告诉你 3 秒检查:
  1. 宝塔 → 软件商店 → 找到你的 PHP → 设置
  2. 安装扩展
  3. 看里面有没有:
    • pdo
    • pdo_sqlite
有这两个就能 100% 运行!
pbootcms亲测 SQLite 转 MySQL 纯净版下载 php文件 一键运行 免费
<?php
/*
 * SQLite 转 MySQL 纯净版
 * 一秒互联公司 www.yimiaonet.com
 * 先选库再导入 = 100%不报错
 */
error_reporting(0);
set_time_limit(300);
header('Content-Type:text/html;charset=utf-8');

$msg = '';

if ($_POST['action'] == 'convert') {
    $dbFile = $_FILES['dbfile']['tmp_name'];

    if (!$dbFile) {
        $msg = '<span style="color:red">请上传 .db 数据库文件</span>';
    } else {
        try {
            $pdo = new PDO("sqlite:$dbFile");
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

            $tables = $pdo->query("SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'")->fetchAll(PDO::FETCH_COLUMN);

            $sql = "-- SQLite to MySQL\n";
            $sql .= "-- 时间:".date('Y-m-d H:i:s')."\n\n";

            foreach ($tables as $table) {
                $cols = $pdo->query("PRAGMA table_info(`$table`)")->fetchAll(PDO::FETCH_ASSOC);

                $sql .= "DROP TABLE IF EXISTS `$table`;\n";
                $sql .= "CREATE TABLE `$table` (\n";

                $fields = [];
                foreach ($cols as $c) {
                    $name = $c['name'];
                    $type = strtoupper($c['type']);
                    $notnull = $c['notnull'];
                    $pk = $c['pk'];

                    if (strpos($type, 'INT') !== false) $mt = 'INT';
                    elseif (strpos($type, 'TEXT') !== false) $mt = 'LONGTEXT';
                    elseif (strpos($type, 'BLOB') !== false) $mt = 'LONGBLOB';
                    elseif (strpos($type, 'REAL') !== false || strpos($type, 'FLOAT') !== false) $mt = 'FLOAT';
                    elseif (strpos($type, 'DOUBLE') !== false) $mt = 'DOUBLE';
                    elseif (strpos($type, 'DATE') !== false || strpos($type, 'TIME') !== false) $mt = 'DATETIME';
                    else $mt = 'VARCHAR(255)';

                    $line = "  `$name` $mt";
                    if ($pk) $line .= " PRIMARY KEY AUTO_INCREMENT";
                    elseif ($notnull) $line .= " NOT NULL";
                    $fields[] = $line;
                }

                $sql .= implode(",\n", $fields);
                $sql .= "\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;\n\n";

                $rows = $pdo->query("SELECT * FROM `$table`")->fetchAll(PDO::FETCH_ASSOC);
                $colNames = array_column($cols, 'name');

                foreach ($rows as $row) {
                    $vals = [];
                    foreach ($colNames as $k) {
                        $v = $row[$k];
                        if ($v === null) $vals[] = 'NULL';
                        elseif (is_int($v) || is_float($v)) $vals[] = $v;
                        else $vals[] = "'".str_replace("'", "''", $v)."'";
                    }
                    $sql .= "INSERT INTO `$table` (`".implode('`,`',$colNames)."`) VALUES (".implode(',',$vals).");\n";
                }
                $sql .= "\n";
            }

            $out = 'mysql_ok.sql';
            file_put_contents($out, $sql);
            $msg = '<span style="color:green">✅ 转换成功!<a href="'.$out.'" download>点我下载SQL</a></span>';
        } catch (Exception $e) {
            $msg = '<span style="color:red">❌ 错误:'.$e->getMessage().'</span>';
        }
    }
}
?>

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>SQLite转MySQL 纯净版</title>
<style>
*{box-sizing:border-box}
body{background:#f6f8fa;padding:40px 20px;font-family:Microsoft YaHei}
.main{max-width:500px;margin:0 auto;background:#fff;padding:30px;border-radius:16px}
h2{text-align:center;color:#333}
input,button{width:100%;padding:12px;margin:8px 0;border-radius:8px;border:1px solid #ddd}
button{background:#007bff;color:white;font-size:16px}
.msg{padding:12px;text-align:center;border-radius:8px}
</style>
</head>
<body>
<div class="main">
    <h2>SQLite 转 MySQL 工具</h2>
    <?php if($msg) echo '<div class="msg">'.$msg.'</div>'; ?>
    <form method="post" enctype="multipart/form-data">
        <input type="hidden" name="action" value="convert">
        <input type="file" name="dbfile" accept=".db" required>
        <button type="submit">开始转换</button>
    </form>
    <br>
    <div style="color:red;font-size:14px">
    ✅ 使用说明:<br>
    1. 转换后下载 sql 文件<br>
    2. 打开 phpMyAdmin <strong>先点左边选中你的库</strong><br>
    3. 再导入,100%不报错
    4.一秒互联公司版权所有
    5.免费分享
    </div>
</div>
</body>
</html>

 

声明与免责说明

  • 1. 本站部分图片来源于 Unsplash,版权归原作者所有。
  • 2. 本站文章、开源代码及免费下载资源仅供个人学习、研究或非商业用途参考,禁止用于商业盈利,版权归原作者所有。
  • 3. 内容(含图片、文章、代码)部分转载自网络,若存在侵权,请联系 meng@yimiaonet.com 处理。
  • 4. 未经本站书面许可,不得复制、盗用、采集、传播本站内容至任何平台。
  • 5.      本站内容不构成专业建议,“OKMG”为注册商标,官方网站:www.okmg.cn,本站保留修改本声明的权利。
实用技巧

Cursor怎么设置中文

2026-1-13 18:10:04

科技资讯

新手做小程序一头雾水?一秒互联带你从到轻松开发!

2025-10-18 16:16:29

0 条回复A文章作者M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
搜索