Memcache:在非对象上调用成员函数get() [英] Memcache: Call to a member function get() on a non-object
本文介绍了Memcache:在非对象上调用成员函数get()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我按照此步骤 在CentOS中安装了memcached. >
这是PHP错误:
Fatal error: Call to a member function get() on a non-object in /home/piscolab/public_html/keepyourlinks.com/includes/funciones.php on line 22
代码:
/* MEMCACHE */
$memcache = new Memcache();
$memcache->pconnect('localhost',11211);
/* checks in memcache, if not: query and save to memcache */
function cache_query($sql,$nombre,$tiempo = -1){
if($tiempo == -1) $tiempo = time() + 24*60*60*365;
$consulta = $memcache->get($nombre); /* THIS is the line */
if ( $consulta === false) {
$consulta = mysql_query($sql);
$memcache->set($nombre,$consulta,0,$tiempo);
$_SESSION['tQ']++;
}else $_SESSION['tQC']++;
return $consulta;
}
我这样调用该函数:
$result = cache_query('select * from users','all_users');
我想念什么?
解决方案
$memcache
对象是this steps
This is the PHP error:
Fatal error: Call to a member function get() on a non-object in /home/piscolab/public_html/keepyourlinks.com/includes/funciones.php on line 22
Code:
/* MEMCACHE */
$memcache = new Memcache();
$memcache->pconnect('localhost',11211);
/* checks in memcache, if not: query and save to memcache */
function cache_query($sql,$nombre,$tiempo = -1){
if($tiempo == -1) $tiempo = time() + 24*60*60*365;
$consulta = $memcache->get($nombre); /* THIS is the line */
if ( $consulta === false) {
$consulta = mysql_query($sql);
$memcache->set($nombre,$consulta,0,$tiempo);
$_SESSION['tQ']++;
}else $_SESSION['tQC']++;
return $consulta;
}
I call the function so:
$result = cache_query('select * from users','all_users');
What am I missing?
解决方案
The $memcache
object is out of scope here.
Add the following line to the top of your function:
global $memcache;
Or pass it as a parameter:
function cache_query($sql, $nombre, $memcache, $tiempo = -1) {
...
}
$result = cache_query('select * from users','all_users', $memcache);
这篇关于Memcache:在非对象上调用成员函数get()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文