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"))); } ?> Text Transformer
Input
Output