【问题标题】:Database-less Approach to Store Some Data in PHP在 PHP 中存储一些数据的无数据库方法
【发布时间】:2011-02-25 17:34:50
【问题描述】:

我是 PHP 新手,但一般不会编程。我想存储一些从 Web 服务中检索到的数据,但我不认为我需要一个数据库。首先,数据会更新得非常频繁,而且它的大小总是小于 1MB。 在 Apache 上的 PHP 中最好、快速但有效的方法是什么?注意:我使用的是托管服务提供商,所以我不喜欢自定义安装。 也许,单身? 谢谢

【问题讨论】:

  • 为什么不想使用数据库?这听起来很适合你正在做的事情。如果您希望数据无限期地持续下去,唯一的其他选择是将其存储到文件中,这实际上是相同的事情,只是更难管理。 “单例”只是一种设计模式(现在真的是一个流行词),与数据存储无关,也没有具体含义。
  • 你的问题太模糊了。描述数据使用情况。否则,您将不得不接受笼统的“仅使用数据库”的答案。

标签: php database data-storage


【解决方案1】:

使用数据库。否则,您将被困在序列化文件中。但要做到这一点,您需要实现并发控制。

节省自己的时间和精力并使用数据库。

【讨论】:

    【解决方案2】:

    我认为问题变成了,数据将存储多长时间?如果您要存储数据直到它被替换或超过单个用户会话,我个人认为数据库是理想的解决方案 - 它被设计为非常有效地快速更改和检索数据。

    如果数据只保留给单个用户会话,您可以使用 PHP 会话将数据存储为数组。

    另一种选择是将数据存储在文件中。但是,这在检索少量数据时效率会低得多。

    【讨论】:

      【解决方案3】:

      尝试使用平面文件。如果您不需要进行任何花哨的查找,那就是。

      【讨论】:

        【解决方案4】:

        数据库的明显替代方案是文件存储。 PHP可以读写好的旧磁盘文件;请参阅 fopen()、fread()、fwrite() 和一些。您需要在服务器上为文件指定一个文件夹(除了 public_html 空间)并提出命名方案和数据格式。

        【讨论】:

          【解决方案5】:

          您可以使用云服务(亚马逊、谷歌...)。但除了让你的应用程序更复杂、更脆弱以及让你自己更时髦之外,我认为使用普通数据库或平面文件没有任何好处。

          【讨论】:

            【解决方案6】:

            您可以将数据存储在 xml 文件中,并使用 simplexml 加载数据并对其进行管理,例如:

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

            然后,您可以获得您定义的节点列表并执行您的操作。如需进一步参考,您可以查看以下内容:

            SimpleXML tutorial

            【讨论】:

              【解决方案7】:

              您可以使用serialize 将数组保存在纯文本文件中。

              有点像

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

              使用 fread 和 mode "r" 再次检索它,然后使用方法 unserialize

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

              然后在数组中管理你的数据。

              【讨论】:

                猜你喜欢
                • 2014-06-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2019-10-03
                相关资源
                最近更新 更多