0

非常に遅い 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 . "'");

?>

どんな助けでも大歓迎です!

4

3 に答える 3

1

$ pageにデータベースセーフな文字のみが含まれていることを確認していますか?

'たとえば、出力にシ​​ングルが含まれている場合はどうなりますか?

于 2012-05-21T15:14:57.880 に答える
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
));
于 2012-05-21T15:25:49.013 に答える
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

于 2012-05-21T22:14:36.517 に答える