Мы пытаемся извлечь HTML-код, хранящийся в виде LONGTEXT в таблице MySQL UTF8, а затем сохранить его как мета-значение post в WordPress.
Если HTML-код содержит, например, символ фунта (£), то функция ‘update_post_meta’ не хранит данные правильно, это происходит только для некоторых символов / например, нормально.
Проблема не существует при сохранении этих символов с помощью функции wp_update_post .
Код ниже - это страница, которую мы используем для обработки данных, о которой идет речь: updatecdata ()
function updatecdata()
{
$SERVER = 'REDACTED';
$USERNAME = 'REDACTED';
$PASSWORD = 'REDACTED';
$DB = 'DATABASE';
$link = mysqli_connect($SERVER,$USERNAME,$PASSWORD,$DB);
mysqli_select_db($link, $DB);
$sql="SELECT * FROM table;";
$result = mysqli_query($link, $sql);
if(! $result ) {
die('Could not get data: ' . mysqli_error($result));
}
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$post_id = $row["post_id"];
$post_title = $row["post_title"];
$post_content = $row["post_content"];
$post_content_reg = row["post_content_reg"];
#####update data####
$post = array(
'ID' => $post_id,
'post_title' => $post_title,
'post_content' => $post_content
);
//UPDATE POST
wp_update_post($post);
//UPDATE POST_META
update_post_meta($post_id, 'contentreg', $content_reg);
}
mysqli_close($link);
}