add fixup messages for utf8
This commit is contained in:
parent
2c81d8db76
commit
d15fdac3d3
@ -296,6 +296,63 @@ class UTF8FixerUpper
|
|||||||
echo "OK\n";
|
echo "OK\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function fixupMessages() {
|
||||||
|
|
||||||
|
// Do a separate DB connection
|
||||||
|
|
||||||
|
$sth = $this->dbu->prepare("UPDATE message SET content = UNHEX(?), rendered = UNHEX(?) WHERE id = ?");
|
||||||
|
|
||||||
|
if (PEAR::isError($sth)) {
|
||||||
|
echo "ERROR: " . $sth->getMessage() . "\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = 'SELECT id, content, rendered FROM message ' .
|
||||||
|
'WHERE LENGTH(content) != CHAR_LENGTH(content) '.
|
||||||
|
'AND modified < "'.$this->max_date.'" '.
|
||||||
|
'ORDER BY id DESC';
|
||||||
|
|
||||||
|
$rn = $this->dbl->query($sql);
|
||||||
|
|
||||||
|
if (PEAR::isError($rn)) {
|
||||||
|
echo "ERROR: " . $rn->getMessage() . "\n";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Number of rows: " . $rn->numRows() . "\n";
|
||||||
|
|
||||||
|
$message = array();
|
||||||
|
|
||||||
|
while (DB_OK == $rn->fetchInto($message)) {
|
||||||
|
|
||||||
|
$id = ($message[0])+0;
|
||||||
|
$content = bin2hex($message[1]);
|
||||||
|
$rendered = bin2hex($message[2]);
|
||||||
|
|
||||||
|
echo "$id...";
|
||||||
|
|
||||||
|
$result =& $this->dbu->execute($sth, array($content, $rendered, $id));
|
||||||
|
|
||||||
|
if (PEAR::isError($result)) {
|
||||||
|
echo "ERROR: " . $result->getMessage() . "\n";
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$cnt = $this->dbu->affectedRows();
|
||||||
|
|
||||||
|
if ($cnt != 1) {
|
||||||
|
echo "ERROR: 0 rows affected\n";
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$message = Message::staticGet('id', $id);
|
||||||
|
$message->decache();
|
||||||
|
$message->free();
|
||||||
|
|
||||||
|
echo "OK\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$max_date = ($argc > 1) ? $argv[1] : null;
|
$max_date = ($argc > 1) ? $argv[1] : null;
|
||||||
|
Loading…
Reference in New Issue
Block a user