我正在用 PHP 开发一个应用程序,我需要为此实现一个大文件处理程序。读写文件不是问题,但检查文件内容是个问题。
我构建了一个递归函数来检查一个变量是否已经在同一个文档中使用。
private function val_id($id){
if(!isset($this->id)){
$this->id = array();
}
if(in_array($id, $this->id)){
return $this->val_id($id+1);
}else{
$this->id[] = $id;
return $id;
}
}
当 in_array($id,$this->id) 返回 FALSE 时,$id 将被添加到 $this->id(包含所有使用的 id 的数组)并返回一个有效的 id。
当返回 TRUE 时,它返回与参数 $id+1 相同的函数
由于我们一次要讨论超过 300000 条记录,PHP 不会不能存储这么大的数组。当这个数组变得太大时,它似乎停止在我生成的文档中写入行。但我没有收到任何这样的错误消息。
由于生成的文档是具有多行 INSERT 的 SQL 文件,因此另一个解决方案可能是检查 id 是否已存在于数据库中。MySQL 可以捕获这些异常并通过将 1 添加到 id 来再次尝试这些条目吗?如何?
你认为我需要如何解决这个问题?
亲切的问候,
沃特