在php中如何实现这一点?

在php中如何实现这一点?,php,loops,memcached,Php,Loops,Memcached,我正在实现一个memcache来缓存mysql查询结果 它使用 while($rowP3= mysql_fetch_array($result3)) { 或者它通过以下方式循环memcached结果(如果它们保存在memcache中,并且未过期) 如何让它根据memcached值是否存在来显示正确的循环方法。我只是想让它选择正确的循环方法。我可以复制整个while{}函数及其所有内容,但我不想重复那大块代码,这样我就可以将while更改为foreach如果不这样做,则使用using-PDO。

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

它使用

while($rowP3= mysql_fetch_array($result3)) { 
或者它通过以下方式循环memcached结果(如果它们保存在memcache中,并且未过期)


如何让它根据memcached值是否存在来显示正确的循环方法。我只是想让它选择正确的循环方法。我可以复制整个while{}函数及其所有内容,但我不想重复那大块代码,这样我就可以将
while
更改为
foreach
如果不这样做,则使用using-PDO。

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

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

逻辑应该类似于:

(部分伪码)


在站点上重写所有mysql调用不是一个选项。太糟糕了,PDO现在真的是标准的,没有人再使用mysql_查询了。事实上,PDO已经很少见了,因为ORM完成了大部分工作。没有人?:)我同意使用PDO/ORM,但从这里可以说,没有人再使用这个或那个了,特别是考虑到PHP的现状,这是说得太多了。谷歌“PHP教程”,你会看到教给新手的东西比PDO/ORM简单得多。它们甚至不包括SQL注入或XSS学习和运输是不同的事情。当然,在它周围有很多芭蕾舞,你必须从一开始就学习(顺便说一句,10年来他们一直都是芭蕾舞团的成员,现在他们还在那里)。当我说没有人再使用它时,我的意思是,没有人再使用mysql\u查询发布软件了。这不会通过大公司的代码审查,也不会通过使用ORM的小型自由职业者的代码审查。但顺便问一下,为什么PDO比mysql_查询更复杂?这更简单,你可以使用foreach!它或者循环while()上的结果,或者使用foreach循环缓存的结果。不是两者都有。
foreach($cch_active_users_final as $rowP3) {
$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