gpt4 book ai didi

c# - 在Mysql数据库中导入Microsoft Access数据库

转载 作者:行者123 更新时间:2023-11-29 00:48:04 25 4
gpt4 key购买 nike

我有一个特殊情况,我的客户需要(定期)将 ms-access 数据库导入他的 mysql 网站数据库(因此它是一个远程数据库)。

因为托管计划是共享托管(不是 vps),唯一的方法是通过 PHP 通过 SQL 查询,因为我在托管上没有 ODBC 支持。

我目前的想法是这个(显然客户有一个 MS-Windows 操作系统):

  • 创建一个小型 C# 应用程序,将 MS-Access 数据库转换为写入文件的大型 SQL 查询
  • 然后应用程序将使用 FTP 信息将文件发送到网站上的指定目录
  • 然后 PHP 脚本将定期运行(例如每 30 分钟一次)并检查文件是否存在,最终将其导入数据库

我知道这不是最好的方法,所以我提出一个问题来为这个问题创建不同的解决方法。客户已经表示他想继续使用他的 ms-access 数据库。

我遇到的最大问题是脚本只能持续 30 秒,这显然是导入数据的问题。

最佳答案

要绕过 30 秒的限制,请重复调用您的脚本,并跟踪您的进度。这是一个粗略的想法:

if(!file_exists('upload.sql')) exit();

$max = 2000; // the maximum number you want to execute.

if(file_exists('progress.txt')) {
$progress = file_get_contents('progress.txt');
} else {
$progress = 0;
}

// load the file into an array, expecting one query per line
$file = file('upload.sql');

foreach($file as $current => $query) {
if($current < $progress) continue; // skip the ones we've done
if($current - $progress >= $max) break; // stop before we hit the max
mysql_query($query);
}

// did we finish the file?
if($current == count($file) - 1) {
unlink('progress.txt');
unlink('upload.sql');
} else {
file_put_contents('progress.txt', $current);
}

关于c# - 在Mysql数据库中导入Microsoft Access数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9708040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com