[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запись сжатой gzcompress строки в базу
achyorny
как записать СЖАТЫЙ сериализованный массив в базу MySQL?
//............................
$content = gzcompress(serialize($array));

$query = "UPDATE
`"
.$tblname."`
SET
`content`='"
.mysql_escape_string($content)."',
`datetime`=NOW()
WHERE
`alias`='"
.mysql_escape_string($keyword)."'";
//............................
//select.....
//получаем content в $row['content'] ...........


$array=unserialize(gzcompress($row['content']));
//..................
тип поля content TEXT в $array элементы - текстовые строки

этот вариант не пашет т.к. скорее всего mysql_escape_string нарушает сжатую строку, а без эскэйпа тоже фигово записывает, т.к. в этой сжатой строке кавычки и т.д.



Спустя 31 минута, 20 секунд (24.11.2011 - 20:58) I++ написал(а):
$content = base64_encode(gzcompress(serialize($array)));


Очень медленно будет работать
$array = unserialize(base64_decode(gzcompress($row['content'])));


Если требуется экономия места. Но это не красиво, лучше обратиться сюда http://dev.mysql.com/doc/refman/4.1/en/enc...tion_uncompress

Нативные функции интереснее, но есть свои подводные камни:

Очень медленно будет работать
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.