Basicaly是我第一次使用memcached ...我试图运行一个简单的查询,由于某种原因不能正常工作...关于memcached的教程不是很好,我不知道为什么不工作我的查询< / p>
<?php
//connect to memcached server and MySQL
$db = new PDO('mysql:host=localhost;dbname=test', 'admin', '');
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect");
// Run the query and get the data from the database then cache it
$category_querry = $db->query('SELECT * FROM category WHERE category_id=1');
$category_querry->setFetchMode(PDO::FETCH_ASSOC);
while($row = $category_querry->fetch()) {
$memcache->set(1, $row['category_name'], 30); // Store the result of the query for 20 seconds
var_dump($memcache->get(1));
echo "</br> Data Pulled from the Database </br>";
}
$get_result = $memcache->get(1);
var_dump($get_result);
if ($get_result)
{
echo "</br>" . $get_result['category_name'];
echo "</br>" . "Data Pulled From Cache";
}
代码已更新现在我以某种方式进入IF语句并在浏览器中显示
string(3) "one"
Data Pulled from the Database
string(3) "one"
o
Data Pulled From Cache
然后向我显示所有var_dump都工作....并且它到达if语句但不知何故$get_result['category_name']
仅在输出o
时输出one
< / p>
为什么???
答案 0 :(得分:0)
设置memcache时,您没有定义$ key变量
$memcache->set($key, $row, TRUE, 60);
在memcache中设置$ key之前需要定义$ key