Php 如何将sql数据导入sqlite?

Php 如何将sql数据导入sqlite?,php,ios,mysql,Php,Ios,Mysql,我有一个iPad应用程序,可以离线工作。我得到了一个本地数据库(sqlite),它存储了所有需要的数据。当我想要更新数据库时,我从服务器端(PHP服务器)创建查询,将其作为sql文件,下载到应用程序,并尝试读取sql文件。下面是示例代码 $txt = "CREATE TABLE IF NOT EXISTS `UOM` (`uom_id` int(11), `uom_name` varchar(200), `uom_status` int(11));"; $txt .= "INSERT INTO

我有一个iPad应用程序,可以离线工作。我得到了一个本地数据库(sqlite),它存储了所有需要的数据。当我想要更新数据库时,我从服务器端(PHP服务器)创建查询,将其作为sql文件,下载到应用程序,并尝试读取sql文件。下面是示例代码

$txt = "CREATE TABLE IF NOT EXISTS `UOM` (`uom_id` int(11), `uom_name` varchar(200), `uom_status` int(11));";

$txt .= "INSERT INTO `UOM` (`uom_id`, `uom_name`, `uom_status`) VALUES (1, 'Unit', 1);";
$txt .= "INSERT INTO `UOM` (`uom_id`, `uom_name`, `uom_status`) VALUES (2, 'Kg', 1);";
$txt .= "INSERT INTO `UOM` (`uom_id`, `uom_name`, `uom_status`) VALUES (3, 'Liter', 1);";

$myfile = fopen("queries_" . $timeStamp . ".sql", "w");
fwrite($myfile, $txt);
fclose($myfile);
我的问题是,如何将其导入本地数据库?我无法打开sql文件并逐行读取查询,因为该文件太大(我的数据库包含超过40k条记录),当我尝试逐行(在循环内)读取时,由于内存问题(非常紧密的循环),应用程序崩溃。我想知道是否有任何方法可以在本地数据库上执行此sql文件而不读取该文件?类似于通过编程将此sql文件导入本地数据库


谢谢

那么,您需要的是一个服务来返回数据子集,如分页。然后逐个加载每个页面。它的进程更长,但内存效率更高。

我认为最好的方法是使用生成JSON格式的get或post请求创建数据库与远程数据库的同步

例如:获取

您可以在其中传递本地数据库的页码和时间戳


您的Json响应包含页数和自定义数据。

也许您可以每x行添加一个sleep,避免一次读取40k行?或者以较小的包从服务器获取数据?为什么不将文件作为流读取?这样,您就可以通过文件缓冲区逐行获取数据。