我正在尝试缓存从非常慢的API获取/处理数据的页面 - 因此我可以将其快速加载到用户。但由于某种原因,输出缓冲区是空的?
<?php
ob_start();
// here I have php scripting accessing api's for information
?>
// Here I have HTML content with some php conditions and echos to filter and display the gathered information
// then I try to save the buffered page to the database:
<?php
//connect to database
$page = ob_get_contents();
mysql_query("UPDATE `pages` SET `page_cache` = '" . $page . "' WHERE `page_id` = '" . $page_id . "'");
?>
任何帮助将不胜感激!
答案 0 :(得分:1)
您确定$ page只包含数据库安全字符吗?
如果输出包含单个'
,会发生什么?
答案 1 :(得分:0)
你可能想让MySQL编码$ page变量:
mysql_query(sprintf(
"UPDATE `pages` SET `page_cache`='%s' WHERE `page_id`=%s",
mysql_real_escape_string( $page ),
intval( $page_id ) // assuming it's an int
));
答案 2 :(得分:0)
检查/etc/php.ini中是否启用了输出缓冲: http://www.php.net/manual/en/outcontrol.configuration.php
另外,做一个:
<?php echo ob_get_contents(); ?>
如果打印FALSE,则可能无法启用输出缓冲: http://php.net/manual/en/function.ob-get-contents.php