2010-09-08 5 views
1

J'ai le scénario suivant. Je dois lancer une requête puis l'enregistrer en mémoire, et si j'ai encore besoin du même résultat pour l'obtenir de la mémoire.Comment convertir un tableau PHP en ressource Mysql

Le stockage et la lecture de la mémoire sont effectués avec memcache. Le problème est que si vous détenez des informations dans un tableau à la fois, vous n'avez qu'à traiter deux cas: 1 pour le type de ressource et un pour le type de tableau.

La question est de savoir si je peux convertir un tableau en type de ressource Mysql.

Merci.

+1

Vous ne pouvez pas convertir un tableau en ressource MySQL. En fait, pourquoi voudriez-vous faire cela? Si vous avez déjà traité vos résultats MySQL, vous pouvez simplement les stocker dans des tableaux et utiliser les tableaux. S'il vous plaît expliquer ce que vous essayez d'accomplir. – NullUserException

+0

Juste pour ajouter à cela, stocker le tableau (par exemple sérialisé) dans memcache, et en tant que clé envisager d'utiliser md5 (chaîne de requête en minuscules). Ensuite, lorsque vous le recherchez, vous pouvez le trouver si vous avez exactement la même chaîne de requête. – Fanis

+0

@Fanis: c'est plus ou moins ce que fait le cache de requêtes de MySQL, sauf qu'il sait quand les données sous-jacentes ont changé. – Mchl

Répondre

2

faire quelque chose comme ça

<?php 

$db = mysql_connect("localhost","foo_dbo","pass") or die("Database error"); 

mysql_select_db("foo_db", $db); 

$sql = "select * from posts;"; 

$file = sprintf("%s.dat", md5($sql)); 

$result = mysql_query($sql); 

if (!$result) die("Invalid query: " . mysql_error()); 

while ($row = mysql_fetch_assoc($result)) $data[]=$row; 

mysql_free_result($result); 
mysql_close($db); 

if($fp=fopen($file,"w")){ 
    fwrite($fp,serialize($data)); 
    fclose($fp); 
} 

?> 

puis de relire dans un tableau faire quelque chose comme

unserialize(file_get_contents($file)) 

évidemment vous utiliseriez Memcache pour stocker les données sérialisés pas le système de fichiers

espérons que cela aide

Questions connexes