Question

J'implémente un memcache pour mettre en cache les résultats de la requête mysql.

Il parcourt les résultats mysql en utilisant

while($rowP3= mysql_fetch_array($result3)) { 

ou il parcourt les résultats memcached (s’ils sont enregistrés dans memcache et n’expirent pas) via

foreach($cch_active_users_final as $rowP3) {

C’est probablement quelque chose qui est vraiment évident ... mais je ne l’ai pas compris.

Comment puis-je l’obtenir pour montrer la bonne méthode de boucle basée sur si la valeur memcached existe ou non. Je veux juste qu'il choisisse la bonne méthode de bouclage. Je pourrais simplement dupliquer la totalité de la fonction while {} avec tout son contenu, mais je ne veux pas répéter cet énorme morceau de code, juste pour pouvoir changer tout en attendant

Des conseils?

Était-ce utile?

La solution

La logique devrait ressembler à quelque chose comme:

(pseudocode partiel)

$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

Autres conseils

Si je comprends votre question, ce code n’a aucun sens. Après avoir interrogé la base de données, comparer les résultats des requêtes aux valeurs en cache n’a aucun sens.

Si les valeurs $ row et $ rowP3 contiennent les mêmes données, vous pouvez avoir ce qui se passe dans les boucles d'une fonction et transmettre la ligne en tant qu'argument.

Vous n'utilisez pas, vous utilisez une méthode unifiée utilisant PDO.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top