私は、ジオメトリフィーチャをデータベースにインポートするためにスクリプトを使用しています。私は下のスクリプトを支出するでしょう。このスクリプトは、すべてのgeo_featuresをインポートすると効果的です。しかし、私の問題は、私はいくつかの機能を変更したい場合、このスクリプトはテーブル全体を削除し、変更だけを入力します。私がインポートしているファイルには、追加する新しい機能や変更が必要なだけです。既存のデータベースにジオメトリフィーチャを変更する
テーブルには1000個の行が含まれています。それを空にするなどはオプションではありません。
DBの既存のテーブルに追加したい場合、またはDBのテーブルにすでにある行を変更する場合は、このスクリプトをどのように変更するかを教えてもらえますか?
スクリプト:
<?php
define('DBHOST', 'localhost');
define('DBUSER', 'root');
define('DBPASS', '');
define('DBNAME', 'sample');
$conn = mysqli_connect(DBHOST,DBUSER,DBPASS,DBNAME);
$file=file_get_contents("wf.geojson");
$contents=json_decode($file);
echo "processing...";
mysqli_query($conn,"DELETE FROM geo_features") or die("delete error");
for($i=0;$i<count($contents->features);$i++){
$type=$contents->features[$i]->properties->type;
$name=$contents->features[$i]->properties->name;
$aisle=$contents->features[$i]->properties->aisle;
$floormap_id=$contents->features[$i]->properties->id;
$g=$contents->features[$i]->geometry->coordinates[0];
$gt=$g[0][0]." ".$g[0][1];
for($j=1;$j<count($g);$j++){
$gt.=",".$g[$j][0]." ".$g[$j][1];
}
$geometry="POLYGON((".$gt."))";
$sql="insert into geo_features
(id,geometry,type,name,floormap_id)
values('$floormap_id',GeomFromText('$geometry'),
'$type','$name','1')";
echo $sql;
mysqli_query($conn,$sql) or die("error");
}
echo "success!";
?>