Самый быстрый способ обновить базу данных Mysql
Просто интересно, каким будет лучший способ обновить всю (большую) базу данных.
По сути, я унаследовал БД, в которой были проблемы с символами, с некоторой помощью я разобрал проблемы с символами в дальнейшем (записывая в них), однако существующие данные требуют очистки.
Было хорошее предложение, чтобы я мог использовать utf_decode для очистки всего этого - я пробовал это на неправильном значении на самой странице (при извлечении), и это прекрасно работает.
Кажется, что существует много таблиц и много данных, каков наилучший / самый быстрый способ очистки всех данных во всей БД с помощью utf_decode?
Спасибо
Спасибо за комментарии, я, кажется, не могу комментировать прямо так, оставляя здесь сообщение - я посмотрю и попробую! Благодарю.
2 ответа
Вы пытались использовать функцию MySQL CONVERT? В зависимости от ваших данных, вы можете обновить таблицы одним оператором, например, "ОБНОВИТЬ mytable SET myfield = CONVERT (myfield USING utf8)".
Получить все данные, преобразовать их и вставить как:
INSERT INTO table VALUES (id, text)
(1, 'utf8'), (2, 'utf8'), (3, 'utf8')
и т.п.
Идет быстрее, чем цикл php с несколькими INSERT-запросами.
РЕДАКТИРОВАТЬ:
Если вы используете хороший массив, вы можете запустить гладкую систему, чтобы сделать это:
$arr = array('users' => array('user_id', 'text', 'username', 'first_name')));
foreach(array_keys($arr) as $h) {
$query = mysql_query("SELECT * FROM {$h}");
while($row = mysql_fetch_object($query)) {
// Loop thingies, utf8_decode then and stuff
}
// Then implode them nicely and use above query
}
Скажите, если вам нужно больше примеров кода.