set_charset('utf8');
if ($link == false){
exit(json_encode(array("success" => "false", "message"=> "Невозможно подключиться к MySQL" . mysqli_connect_error())));
}
$resCollection = $link->query("SELECT * FROM `".$prefix."collections` WHERE `name` = '" . $data['collection'] . "';");
$isSuccess = true;
$hasCollection = mysqli_num_rows($resCollection) > 0;
foreach($data['data'] as $key => $value){
// echo $key . " -> "; var_dump($value); echo '
';
if($hasCollection){
$rs = $link->query("SELECT `twin_id`, `twin_data` FROM `".$prefix."translations` WHERE `field_key` = '" . $key . "';");
$hasLocalization = mysqli_num_rows($rs) > 0;
if($hasLocalization){
//updating
$data = mysqli_fetch_assoc($rs);
$twinData = json_decode($data['twin_data'], true);
$twinData['dateUpdated'] = time()*1000;
$res = $link->query("UPDATE `".$prefix."translations` SET `twin_data` = '".str_replace("\"", '\\"',json_encode($twinData))."' , `content` = '".str_replace("\"", '\\"', json_encode($value, JSON_UNESCAPED_UNICODE))."' WHERE `twin_id` = '" . $data['twin_id'] . "';");
if(!$res) {
exit(json_encode(array("success" => "false", "message" => "Couldn't save " . $key . ": " . $link->error)));
break;
}
}else {
$twinData = array(
"dateCreated" => time()*1000,
"dateUpdated" => time()*1000,
"archived" => false,
"tags" => []
);
$twinId = guidv4();
//inserting
$stmt = $link->prepare("INSERT INTO `".$prefix."translations` (`collection`, `field_key`, `content`, `twin_id`, `twin_data`) VALUES (?,?,?,?,?)");
$stmt ->bind_param("sssss", $data['collection'], $key, json_encode($value, JSON_UNESCAPED_UNICODE), $twinId, json_encode($twinData));
$res = $stmt -> execute();
$stmt -> close();
if(!$res) {
exit(json_encode(array("success" => "false", "message" => "Couldn't save " . $key . ": " . $link->error)));
break;
}
}
}else {
$twinData = array(
"dateCreated" => time()*1000,
"dateUpdated" => time()*1000,
"archived" => false,
"tags" => []
);
$twinId = guidv4();
//inserting
$queryAddCollection = "INSERT INTO `".$prefix."collections` (`name`, `servers`, `blacklist`) VALUES ('".$data['collection']."', '[]', 1)";
// $queryAddTranslation = "INSERT INTO `".$prefix."translations` (`collection`, `field_key`, `content`, `twin_id`, `twin_data`) VALUES ('".$data['collection']."' , '".$key."' , '".str_replace("\"", '\\"', json_encode($value, JSON_UNESCAPED_UNICODE))."' , '".$twinId."' , '".str_replace("\"", '\\"',json_encode($twinData))."');";
$res = $link->query($queryAddCollection);
// $res = $link->query($queryAddTranslation);
$stmt = $link->prepare("INSERT INTO `".$prefix."translations` (`collection`, `field_key`, `content`, `twin_id`, `twin_data`) VALUES (?,?,?,?,?)");
$stmt ->bind_param("sssss", $data['collection'], $key, json_encode($value, JSON_UNESCAPED_UNICODE), $twinId, json_encode($twinData));
$res = $stmt -> execute();
$stmt -> close();
if(!$res) {
exit(json_encode(array("success" => "false", "message" => "Couldn't save " . $key . ": " . $link->error)));
break;
}
$hasCollection = true;
}
}
exit(json_encode(array("success" => "true")));
}
?>