Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中保存mysql结果到文件的最佳格式?_Php_Mysql_Json_Caching - Fatal编程技术网

php中保存mysql结果到文件的最佳格式?

php中保存mysql结果到文件的最佳格式?,php,mysql,json,caching,Php,Mysql,Json,Caching,我正在用PHP为数据库查询设置一个缓存系统 因此,当调用“SELECT*fromtable”这样的查询时,它要么返回该查询的缓存结果,要么直接从数据库返回结果 $query = "SELECT * FROM table"; [...] $data = mysql_query($query); [...] fwrite($file,json_encode($data)); [...] 问题是我试图将查询结果保存到文件中,但找不到有效的文本格式。我尝试了json_编码和序列化,它们都返回null或

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

因此,当调用“SELECT*fromtable”这样的查询时,它要么返回该查询的缓存结果,要么直接从数据库返回结果

$query = "SELECT * FROM table";
[...]
$data = mysql_query($query);
[...]
fwrite($file,json_encode($data));
[...]
问题是我试图将查询结果保存到文件中,但找不到有效的文本格式。我尝试了json_编码和序列化,它们都返回null或0。是否有一种格式可以在不必执行mysql_fetch_array()然后序列化的情况下实现这一点

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

Warning: [json] (php_json_encode) type is unsupported, encoded as null
为什么不:

  • 使用本机mysql缓存
  • 优化查询,使其快速工作,而不需要缓存

  • 对于您正在处理的问题,这可能不是一个完美的解决方案,但我发现它对于处理类似情况非常方便。该类包含一个缓存函数,它可以满足您在上述问题中提到的需求。(好处是它还可以处理许多更迟钝的PHPMySQL交互。)

    我对mysql的内置缓存不太熟悉……它会提供与我所尝试的相同的性能提升吗?我只是假设不会,因为仍然需要调用db服务器来返回缓存。至于优化查询,这是一个巨大的应用程序,所有的东西都尽可能地优化了,但是仍然有大量的小数据库调用,我担心如果我们遇到流量高峰,一切都会停止。我是在应用程序基本完成的时候加入的,我可以看到很多方法来进一步优化它,但是现在对所有内容进行重新编码并不是一个真正的选择。ps:不要忘记,在“超级性能”中对于缓存数据,你会感到缓存失效的头痛在阅读了更多关于mysql的查询缓存的内容后,考虑到这个应用的大小和工作方式,我认为它不会像在应用程序端做一些事情那样有效。另外,我尝试设置的缓存机制并不适用于所有缓存,只适用于某些缓存。一切都设置好了,我只需要找到一个格式,将工作结果保存到一个文件。非常感谢您的帮助:)@phx zs:没有什么私人问题,但是本机缓存的性能将比您的解决方案高得多。就因为你不能回答你的问题,我就试一试。我只是被这些文章中所有的谈论吓坏了,这些讨论都是关于如果使用不当,它会把事情搞得一团糟……嘿,如果你要费心否决我,我至少希望你能解释一下。如果我错了,伟大的-教育我!不是我。不过,谢谢你的建议……我会在下一个项目中记住这门课,但是现在就把它合并进来已经太晚了。