Smartyのキャッシュ機能について誤解があるようです。
Smartyのキャッシュ機能は、ブラウザの画面に表示させる内容をキャッシュさせるのであって、MySQLのクエリー結果をキャッシュするわけではありません。
MySQLのクエリーをキャッシュしたいのであれば、下記の処理を行います。
http://dev.mysql.com/doc/refman/4.1/ja/query-cache.html
▽2
●
gizmo5 ●200ポイント ベストアンサー |
isCached メソッドを使って判定します。
//ここの部分をキャッシュあるなしで処理したいです if(!$smarty->isCached('index.tpl')) { $posts = mysql_query("SELECT * from ***") or die(mysql_error()); while ($pot = mysql_fetch_array($posts)) { $post[] = $pot; } $smarty->assign('post', $post); } $smarty->display( 'index.tpl');
些細な指摘なのですが、
>現状index.phpを表示する度にDB接続しているため負担が大きく、これを解消するために考えています。
接続する際はmysql:ではなく、mysqli:を使用すると負担が2割改善します。
これはmysql_fetch_arrayも同様です。
将来的にはmysqliが標準化されるので、smartyを使用するのであれば可能な限りmysqliを使用したほうがよろしいかと思います。
http://otukutun.hatenablog.com/entry/2013/01/29/225140