我将如何在PHP中执行此操作?

时间:2009-11-26 23:39:24

标签: php loops memcached

我正在实现一个memcache来缓存mysql查询结果。

它使用

循环通过mysql结果
while($rowP3= mysql_fetch_array($result3)) { 

或者它通过memcached结果循环(如果它们保存在memcache中,而不是过期)通过

foreach($cch_active_users_final as $rowP3) {

这可能是非常明显的事情......但我没有得到它。

如何根据memcached值是否存在显示正确的循环方法。我只是想让它选择正确的循环方法。我可以用它的所有内容复制整个while {}函数,但是我不想重复那么大的代码块,只是因为我可以在foreach中进行更改

任何提示?

4 个答案:

答案 0 :(得分:2)

逻辑应该是这样的:

(部分伪代码)

$data = get_memcached_data('cch_active_users_final');

if (!$data) {
  $query = mysql_query(..);
  $data = array();
  while($row = mysql_fetch_array()) {
    $data[] = $row;
  }
  store_in_memcache('cch_active_users_final', $data);
}

// do whatever you want with $data

答案 1 :(得分:1)

如果我理解你的问题,这段代码没有意义。查询数据库后,将查询结果与缓存值进行比较是没有意义的。

答案 2 :(得分:0)

你没有,你使用PDO使用unified method

答案 3 :(得分:0)

如果$ row和$ rowP3值包含相同的数据,则可以在函数的循环中发生任何事情,并将该行作为参数传递。