Подход без базы данных для хранения некоторых данных в PHP - PullRequest
4 голосов
/ 25 февраля 2011

Я новичок в PHP, но не программирую в целом.Я хочу сохранить некоторые данные, которые я извлекаю из веб-службы, но не думаю, что мне нужна база данных для этого.Во-первых, данные будут обновляться довольно часто, а их размер всегда будет меньше 1 МБ.Какой самый лучший, быстрый, но эффективный подход в PHP на Apache?Примечание: я использую хостинг-провайдера, поэтому я не предпочитаю выборочную установку.Может быть, синглтон?Спасибо

Ответы [ 7 ]

4 голосов
/ 25 февраля 2011

Использовать базу данных.В противном случае вы застряли сериализации файла.Но чтобы сделать это правильно, вам нужно реализовать средства управления параллелизмом.

Экономьте время и силы и используйте базу данных.

1 голос
/ 25 февраля 2011

Я думаю, что возникает вопрос, как долго будут храниться данные? Если вы храните данные до тех пор, пока они не будут заменены или дольше, чем однопользовательский сеанс, лично я считаю, что база данных - это идеальное решение - она ​​очень эффективна для быстрого изменения и получения данных.

Если данные хранятся только для одного пользовательского сеанса, вы можете использовать сеансы PHP для хранения данных в виде массива.

Другой альтернативой является сохранение данных в файле. Однако это может быть гораздо менее эффективно при получении небольших объемов данных.

0 голосов
/ 25 февраля 2011

Вы можете хранить свои данные в XML-файлах и использовать симплексный файл для загрузки данных и управления ими, например:

$ xml = simplexml_load_file ("test.xml");

Тогдау вас может быть список узлов, которые вы определили, и делать свои вещи.Для дальнейшего ознакомления вы можете проверить следующее:

Руководство по SimpleXML

0 голосов
/ 25 февраля 2011

Вы можете сохранить массивы в виде простого текстового файла, используя serialize .

Что-то вроде

$fh = fopen("db.txt", "w");
fwrite($fh, serialize(array("field"=>"data"));
fclose($fh);

Получите его снова с помощью fread и режима "r"затем метод unserialize.

$fh = fopen("db.txt", "r");
$data = unserialize(fread($fh));
fclose($fh);

А затем управляйте вашими данными в массиве.

0 голосов
/ 25 февраля 2011

Вы можете использовать облачный сервис (Amazon, Google ...). Но кроме того, что вы сделаете ваше приложение более сложным и хрупким, а себя - более модным, я не вижу никакой выгоды по сравнению с использованием обычной базы данных или плоского файла.

0 голосов
/ 25 февраля 2011

Очевидной альтернативой базе данных является файловое хранилище. PHP может читать и писать старые добрые файлы на диске; см. fopen (), fread (), fwrite (), а затем некоторые. Вам нужно будет указать папку на сервере (кроме пространства public_html) для файлов и придумать схему именования и формат данных.

0 голосов
/ 25 февраля 2011

Попробуйте использовать плоский файл.Если вам не нужно делать какие-либо необычные поиски, то есть.

...