xpath('//block'); foreach($dataBlock as $block){ if($block->info->type=="wbw"){ $bookId=$block->info->book; $parNum=$block->info->paragraph; $author=$block->info->author; $language=$block->info->language; $edition=$block->info->edition; $db_file = $dir_palicannon_wbw.$bookId."_wbw.db3"; PDO_Connect("sqlite:$db_file"); $log.= "pdo open . $db_file \r\n"; $query="DELETE FROM \"main\" WHERE \"book\" = ".$PDO->quote($bookId)." AND \"paragraph\" = ".$PDO->quote($parNum); $stmt = @PDO_Execute($query); if (!$stmt || ($stmt && $stmt->errorCode() != 0)) { $error = PDO_ErrorInfo(); //print_r($error[2]); $log.= "error:".$error[2]." \r\n"; break; } $log.= "pdo delete ok . $db_file \r\n"; $arrInserString=array(); $words=$block->data->xpath('word'); foreach($block->data->children() as $ws){ $log.="word:$ws->pali \r\n"; //foreach($words as $ws){ //new recorder $params=array($ws->id,$ws->pali,$ws->real,$ws->type,$ws->gramma,$ws->mean,$ws->note,$ws->org,$ws->om,$ws->bmc,$ws->bmt,$ws->un,$ws->style,$ws->edition); $arrInserString[count($arrInserString)]=$params; } /* 开始一个事务,关闭自动提交 */ $PDO->beginTransaction(); $query="INSERT INTO main ('id','wid','book','paragraph','word','real','type','gramma','mean','note','part','partmean','bmc','bmt','un','style','language','author','editor','revision','edition','subver','vri','sya','si','ka','pi','pa','kam') VALUES (null,?,'".$bookId."','$parNum',?,?,?,?,?,?,?,?,?,?,?,?,'".$language."','".$author."','','',?,'0','1','0','0','0','0','0','0')"; $log.= "query $query \r\n"; $stmt = $PDO->prepare($query); foreach($arrInserString as $oneParam){ $stmt->execute($oneParam); } /* 提交更改 */ $PDO->commit(); if (!$stmt || ($stmt && $stmt->errorCode() != 0)) { $error = PDO_ErrorInfo(); $log.= "error - $error[2] \r\n"; } else{ $count=count($arrInserString); $log.= "updata $count recorders. \r\n"; } $PDO=null; $log.= "pdo close. \r\n"; } } $myLogFile = fopen("updata_wbw.log", "w"); fwrite($myLogFile, $log); fclose($myLogFile); echo("Successful"); ?>