J'ai pris un peu d'un script memcache que j'ai utilisé précédemment sans problème, mais sur la nouvelle page, je ne reçois aucune réponse.Impossible d'obtenir memcache pour renvoyer la valeur
le memcache est dans une fonction qui est incluse à partir d'une autre page. ce que je fais est de mettre le hachage MD5 la requête mysql et de stocker cela comme clé pour les données memcached. si la clé n'est pas dans memcache, alors je vais créer les données, les mettre dans memcache et les retourner.
Je pense que le code est assez simple. Voici les bits importants (c'est une grande page qui crée la sortie, donc vous n'avez pas besoin de tout ça, même si le 'retour' je pense est important car je crains que ce soit là où je suis en train de bousiller
I appeler la fonction avec
$outList.= outData($getList);
où $ getList est une requête MySQL
la fonction $ outList est
<?php
@$memcache = new Memcache;
@$memcache->connect("localhost",11211);
function outData($getList)
{
$memVal = @$memcache->get(MD5($getList));
if($memVal=='')
{
$results=mysql_query($getList)or die(mysql_error());
// then I do a bunch of stuff with the data
@$memcache->set(MD5($getList), $memVal, false, 60000);
}
return $memVal;
}
je peux afficher tous les trucs pour créer $ memVal, mais je soupçonne e L'erreur est dans la ligne if, mais le même code est utilisé sur une autre page sans problèmes.
Quelque chose ne va pas avec ça?
Est-ce une grande aide si vous supprimez le @ pendant le débogage ..... –
C'est aussi pourquoi je lance mon environnement de développement avec des erreurs les plus strictes * et avertissements * affiché. Je veux voir tout ce que PHP trouve même légèrement faux sur le code. Un avertissement est une erreur qui reviendra plus tard pour vous mordre. –