PHP:无需任何处理即可保存表单数据的最快方法

时间:2014-11-30 23:40:55

标签: php forms

我接受从客户端(Web和移动设备)到PHP服务器的相当复杂的表单数据。当我收到数据时,我不需要以任何方式处理它,我只需要将它存储在某个地方并让客户知道表单已成功提交。我稍后批量处理数据。

快速存储传入表单数据的最佳方法是什么?

在这种情况下,两个函数似乎相关:

此外,不是将此序列化数据发送到数据库,而是将其附加到某个文本文件会快得多,对吗?

有人能给我更多关于这些事情的信息吗?

3 个答案:

答案 0 :(得分:0)

如果你只是需要从POST获取文本,你可以获得普通的POST请求而无需任何序列化。

echo file_get_contents('php://input');

附加到文件非常快。但请记住,您还需要管理此文件。

P.S。看起来像是过早优化。

答案 1 :(得分:-1)

我会考虑

base64_encode(serialize($_POST));

// assuming $array is the returned mySQL column (BLOB type) 
unserialize(base64_decode($array));

请注意,base64_encode是可选的,取决于存储的数据,可能需要也可能不需要编码。

答案 2 :(得分:-2)

保存数据的最快方法不是使用PHP,而是将C扩展写入您正在使用的任何Web服务器,这只会保存文件。最快的不是最好的。除非您每小时都在谈论数万亿次请求,否则最好至少部分内联处理这些请求,并将它们存储到关系数据库或对象数据库中。我会亲自使用MySQL或Mongo,因为我对它们有一些经验,但许多其他数据存储可能是合适的。

尝试通过“简单地附加到文件”来智能数据库可能会让您遇到很多麻烦。数据库已经对并发操作,优化写入,缓存,事务支持等提供了很多支持......如果你同时“追加”来自多个Web请求的文件,你最终会得到损坏的数据。

我知道这有点不回答,但根据我的经验,你提出的问题类型充其量是错误的。如果你真的绝对需要“以最快的方式”做一些事情,那么你可能不需要在Stack Overflow上询问它,因为你已经进入了一个前沿的开发环境,你已经有了十年+有关创建此类实现的经验。