SQL attributes native unicode (#5371)

Save our attributes for entries, feeds, and tags as native Unicode instead of JSON escape sequences such as `\u00f8` which are difficult to work with.
This commit is contained in:
Alexandre Alapetite
2023-05-04 19:48:09 +02:00
committed by GitHub
parent 30c69ef147
commit fde4e79ed0
4 changed files with 8 additions and 8 deletions

View File

@@ -60,7 +60,7 @@ class FreshRSS_CategoryDAO extends Minz_ModelPdo {
continue;
}
if (!($stm->bindValue(':id', $feed['id'], PDO::PARAM_INT) &&
$stm->bindValue(':attributes', json_encode($attributes, JSON_UNESCAPED_SLASHES)) &&
$stm->bindValue(':attributes', json_encode($attributes, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)) &&
$stm->execute())) {
Minz_Log::error('SQL error ' . __METHOD__ . json_encode($stm->errorInfo()));
}
@@ -118,7 +118,7 @@ SQL;
$values = array(
$valuesTmp['kind'] ?? FreshRSS_Category::KIND_NORMAL,
$valuesTmp['name'],
is_string($valuesTmp['attributes']) ? $valuesTmp['attributes'] : json_encode($valuesTmp['attributes'], JSON_UNESCAPED_SLASHES),
is_string($valuesTmp['attributes']) ? $valuesTmp['attributes'] : json_encode($valuesTmp['attributes'], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE),
$valuesTmp['name'],
);
@@ -169,7 +169,7 @@ SQL;
$values = array(
$valuesTmp['name'],
$valuesTmp['kind'] ?? FreshRSS_Category::KIND_NORMAL,
is_string($valuesTmp['attributes']) ? $valuesTmp['attributes'] : json_encode($valuesTmp['attributes'], JSON_UNESCAPED_SLASHES),
is_string($valuesTmp['attributes']) ? $valuesTmp['attributes'] : json_encode($valuesTmp['attributes'], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE),
$id,
$valuesTmp['name'],
);

View File

@@ -169,7 +169,7 @@ SQL;
$valuesTmp['attributes'] = [];
}
$this->addEntryPrepared->bindValue(':attributes', is_string($valuesTmp['attributes']) ? $valuesTmp['attributes'] :
json_encode($valuesTmp['attributes'], JSON_UNESCAPED_SLASHES));
json_encode($valuesTmp['attributes'], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));
if (static::hasNativeHex()) {
$this->addEntryPrepared->bindParam(':hash', $valuesTmp['hash']);
@@ -280,7 +280,7 @@ SQL;
$valuesTmp['attributes'] = [];
}
$this->updateEntryPrepared->bindValue(':attributes', is_string($valuesTmp['attributes']) ? $valuesTmp['attributes'] :
json_encode($valuesTmp['attributes'], JSON_UNESCAPED_SLASHES));
json_encode($valuesTmp['attributes'], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE));
if (static::hasNativeHex()) {
$this->updateEntryPrepared->bindParam(':hash', $valuesTmp['hash']);

View File

@@ -66,7 +66,7 @@ class FreshRSS_FeedDAO extends Minz_ModelPdo {
base64_encode($valuesTmp['httpAuth']),
isset($valuesTmp['error']) ? intval($valuesTmp['error']) : 0,
isset($valuesTmp['ttl']) ? intval($valuesTmp['ttl']) : FreshRSS_Feed::TTL_DEFAULT,
is_string($valuesTmp['attributes']) ? $valuesTmp['attributes'] : json_encode($valuesTmp['attributes'], JSON_UNESCAPED_SLASHES),
is_string($valuesTmp['attributes']) ? $valuesTmp['attributes'] : json_encode($valuesTmp['attributes'], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE),
);
if ($stm !== false && $stm->execute($values)) {

View File

@@ -62,7 +62,7 @@ SQL;
}
$values = array(
$valuesTmp['name'],
is_string($valuesTmp['attributes']) ? $valuesTmp['attributes'] : json_encode($valuesTmp['attributes'], JSON_UNESCAPED_SLASHES),
is_string($valuesTmp['attributes']) ? $valuesTmp['attributes'] : json_encode($valuesTmp['attributes'], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE),
$valuesTmp['name'],
);
@@ -120,7 +120,7 @@ SQL;
$stm = $this->pdo->prepare($sql);
if ($stm !== false &&
$stm->bindValue(':id', $id, PDO::PARAM_INT) &&
$stm->bindValue(':attributes', json_encode($attributes, JSON_UNESCAPED_SLASHES), PDO::PARAM_STR) &&
$stm->bindValue(':attributes', json_encode($attributes, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE), PDO::PARAM_STR) &&
$stm->execute()) {
return $stm->rowCount();
}