序列化/反序列化用于存储/检索数据

时间:2012-09-24 08:26:38

标签: php mysql arrays


我是php的初学者..
昨晚我完成了我的第一个完整的网站脚本
但我根本没有使用任何MySQL数据库 我曾经序列化将数据存储为文件中的数组 然后,当我想要检索它..我简单地将该文件加载到变量
并将其反序列化,使其成为具有数据的数组

说这段代码为例:

  <?
  //saving
  $data_array = array('name' => 'John','user-name'=>'shotgun','birth'=>'April');
  $data_array=serialize($data_array);
  file_put_contents('data.ser', $data_array);

  //calling back and printing
  file_get_contents('data.ser');
  $data_array=unserialize($data_array);
  print_r($data_array);
  ?>



我知道绝对没有专业人士。用这种方法
但有什么缺点。 ?

3 个答案:

答案 0 :(得分:0)

除了对硬盘执行IO之外,我认为您的方法没有任何缺点。但是,对于更复杂的情况,使用MySQL数据库会更好。例如。那些您不需要阅读整个条目列表以获得所需条目的条目。如果您不使用数据库而不使用静态文件,则需要将整个文件读入内存,迭代它直到找到您要查找的内容然后关闭它,这是不必要的开销。

答案 1 :(得分:0)

缺点。不存储到数据库中:

  • HDD I / O
  • 无法搜索
  • 如果程序员改变则难以维护

答案 2 :(得分:0)

一个主要问题是您完全忘记了从服务器运行PHP并且您的应用必须处理并发连接。