【问题标题】:Best format in php to save mysql result to a file?php中将mysql结果保存到文件的最佳格式?
【发布时间】:2010-08-05 00:50:30
【问题描述】:

我正在 PHP 中为数据库查询设置一个缓存系统。

因此,当调用诸如“SELECT * FROM table”之类的查询时,它要么返回该查询的缓存结果,要么直接从数据库返回结果。

$query = "SELECT * FROM table";
[...]
$data = mysql_query($query);
[...]
fwrite($file,json_encode($data));
[...]

问题是我正在尝试将查询结果保存到文件中,但找不到有效的文本格式。我试过 json_encode 和序列化,它们都返回 null 或 0。有没有一种格式可以解决这个问题,而不必执行 mysql_fetch_array() 然后序列化?

这是我使用json得到的错误,显然是因为我没有将结果转换为数组:

Warning: [json] (php_json_encode) type is unsupported, encoded as null

【问题讨论】:

    标签: php mysql json caching


    【解决方案1】:

    为什么不:

    1. 使用本机 mysql 缓存?
    2. 优化查询,使其工作快速且无需缓存?

    【讨论】:

    • 我对 mysql 的内置缓存不是很熟悉......它会提供与我尝试做的相同的性能提升吗?我只是假设它不会因为仍然必须调用数据库服务器才能返回该缓存。至于优化查询,它是一个巨大的应用程序,并且尽可能地优化了东西,但是仍然有大量的小数据库调用,我担心如果我们遇到流量高峰,一切都会停止。我是在应用程序大部分完成的时候进来的,我可以看到很多优化它的方法,但是现在重新编码所有东西并不是一个真正的选择。
    • ps:不要忘记,缓存数据的“超级性能”会让您对缓存失效感到头疼
    • 在阅读了有关 mysql 查询缓存的更多信息后,考虑到这个应用程序的大小及其工作方式,我认为它不会像在应用程序端做某事那样有效。此外,我尝试设置的这种缓存机制并非适用于所有缓存,仅适用于某些缓存。一切都准备就绪,我只需要找到一种可以将结果保存到文件的格式。非常感谢您的帮助:)
    • @phx-zs:没什么私人的,但本机缓存的性能将比您的解决方案高得多。只是因为你不能回答你的问题。
    • 我会试一试。我只是被这些文章中所有关于如果使用不当会造成混乱的讨论吓倒......
    【解决方案2】:

    对于您正在处理的问题,这可能不是一个完美的解决方案,但我发现Justin Vincent's ezSQL Class 非常适合处理此类情况。该类包含一个缓存功能,可以满足您在上面问题中提到的需求。 (好处是它还处理了许多更迟钝的 PHPMySQL 交互。)

    【讨论】:

    • 嘿,如果您不屑于对我投反对票,我至少会感谢您的解释。如果我错了,太好了 - 教育我!
    • 不是我。不过感谢您的建议...我会在下一个项目中记住该课程,但现在合并它为时已晚。
    猜你喜欢
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多