缓存MySQL将在稍后检索缓存表中 -- 6 领域 和 caching 领域 和 database 领域 drupal 相关 的问题

Caching mysql results in cache table to be retrieved later


2
vote

问题

中文

如何从缓存表中存储的MySQL结果中获取记录?

  $cached_res_obj = cache_get("expensive_sql", MY_CACHE_TABLE); $res            = $cached_res_obj->data; while ($row = db_fetch_array($res)) {     print_r($row); } die(__FUNCTION__);   

我没有得到任何结果。如果我通过drupal运行实际查询,我会得到结果。 这里应该做什么?

英文原文

How can i fetch records from mysql results stored in cache table ?

$cached_res_obj = cache_get("expensive_sql", MY_CACHE_TABLE); $res            = $cached_res_obj->data; while ($row = db_fetch_array($res)) {     print_r($row); } die(__FUNCTION__); 

I dont get any results. If i run the actual query through drupal I get results. What should be done here ?

        

回答列表

3
 
vote
vote
最佳答案
 

您无法将查询结果资源直接存储在缓存表中,因为它无法序列化。相反,当您首次运行昂贵的查询时,您应该循环循环,并缓存结果数组,如:

  $q = db_query('expensive sql here'); $data = array(); while ($row = db_fetch_object($q)) {   $data[] = $row; }  cache_set('expensive_sql', $data, MY_CACHE_TABLE);   

然后当您在另一端拾取它时,您只需循环该阵列:

  $cached_res_obj = cache_get("expensive_sql", MY_CACHE_TABLE); $res            = $cached_res_obj->data;  foreach ($res as $row) {   print_r($row); }   
 

You can't store the query result resource directly in the cache table as it can't be serialised. Instead you should loop through that resource when you first run the expensive query, and cache an array of results, like so:

$q = db_query('expensive sql here'); $data = array(); while ($row = db_fetch_object($q)) {   $data[] = $row; }  cache_set('expensive_sql', $data, MY_CACHE_TABLE); 

Then when you pick it up at the other end you can just loop through that array:

$cached_res_obj = cache_get("expensive_sql", MY_CACHE_TABLE); $res            = $cached_res_obj->data;  foreach ($res as $row) {   print_r($row); } 
 
 

相关问题

3  使用Geo位置获取多个纬度和纵向[关闭]  ( Fetch multiple latitudes and longitudes using geo location ) 
关闭。这个问题需要详细信息或清晰度。它目前不接受答案。 想要改进这个问题?添加详细信息并通过编辑此帖的问题。 关闭 2年前。 ...

1  如何在SOLR字段的值上进行或操作?  ( How can i do an or operation on the values of a solr field ) 
说我有一个各个方面的方面,我希望能够点击一个以上的国家(说我们和英国)并获得结果标记为"我们" 或"英国" 。 当前如果我在面部块上单击"英国" ,则其他术语如果这是"单个索尔字段" ,则会消失。 如果是一个多值索尔字段,则其他术语不会消失,但是完成了AND操作。 如何更改默认行为以允许或操作"单个" 和"多值" 索...

2  将Drupal 6站点移动到新服务器 - 无法登录  ( Moved drupal 6 site to new server cant login ) 
我正在将客户端的站点迁移到其他服务器,因为我们正在更改Web主机。域名仍然指向旧网站,即可使用IP地址或临时URL预览新站点。但是,由于我移动它,我再也不能登录了,我得到了"访问被拒绝" 错误消息。这是一个已知的问题?我该如何解决它? 编辑:当我将站点下载到我的硬盘时,我奇怪地没有这个问题并在本地运行它。 ...

0  HTML特殊字符更改为外籍字符  ( Html special characters changed to foreign characters ) 
我们有一个Drupal 6网站,并使用TinyMCE为编辑器。我们的许多页面包括磅(£)标志以及其他特殊字符。所有这些现在都被改为外国符号。现在的英镑标志显示为£和其他奇怪的符号,如 - "。 我检查了源代码,原始字符已被更改为奇怪的新字符。它似乎是修复它的唯一方法是手动编辑所有页面。我检查了字符编码标记,这设置为U...

0  最多有多少个节点Drupal可以在不影响性能的情况下处理? [关闭]  ( Up to how many nodes drupal can handle without affecting performance ) 
正如目前所在的那样,这个问题并不适合我们的Q&一种格式。我们预计事实,参考资料或专业知识的支持,但该问题可能会征求辩论,论点,投票或扩展讨论。如果您觉得可以改进此问题并可能重新开放,请访问帮助中心进行指导。 ...

1  我应该在保存节点时在电子邮件中写入节点的信息是什么操作?  ( What operation should i use to write nodes information in an email when the nod ) 
我正在使用 hook_nodeapi() 在用户点击"保存" 按钮时在电子邮件中显示节点的信息。我尝试了编写代码的"psuales" 操作,但这并没有按照我想要的方式工作。我尝试使用查询来拔出节点数据,但在"帖子" 操作之后,数据不在数据库中。 哪个 $op 对我来说是合适的吗?我也试过"插入" ,这不起作用。 ...

1  浏览移动站点时禁用模块  ( Disable modules when browsing mobile site ) 
我有一个也向移动设备提供其内容的网站。正如这些网站(Desktop / Mobile)使用相同的代码。我在性能中存在问题,因为即使我没有使用它,也在桌面站点中使用的模块也装入移动站点中。是否有一种方法可以排除这些模块(自定义/ Contract)而不阻止每个模块?这种情况的任何好主意? 嗨patrick .........

1  jquery错误“c未定义”,同时制作分页的Ajax呼叫  ( Jquery error c is undefined while making ajax call for pagination ) 
我正在使用Ajax进行司布6项目中的形式分页。它在我的本地机器上工作很好,带有默认主题,但在直播服务器上,它给了我一个错误并生成原始的另一个分页链接。 当我点击下一步时,之前或页面链接它给了我一个错误"c是未定义的 http:// siteurl / site /默认/文件/ js / js_2ebf7f4036f...

3  跟踪定制修补程序到贡献模块的“正确”方式是什么?  ( What is the right way to track a custom patch to a contributed module ) 
我需要将此修补程序应用于我的网站: http://drupal.org/node/483176-6mment-5939648 跟踪这种变化的"右" 或"负责" 方式是什么?我们使用Git for Version Control。 ...

0  节点API中保存后案例?  ( Post save case in node api ) 
在node_api函数或任何其他类型的功能中是保存的后保存类型的情况?这个问题是关于我发布的问题在节省节点时,我应该在电子邮件中编写节点信息的操作? 我希望能够在按下保存按钮后发生一些事情,但在保存到数据库后完成后。我尝试了"更新" 和"插入" ,他们似乎没有工作。 编辑:heres我的代码 case 'pres...

1  在其他地方使用实际法  ( Using realnames in other places ) 
在Drupal Commons中,我们正在使用RealManames模块。有没有办法将此模块的信息扩展到其他搜索框字段? 例如,在有机组中邀请(/ og /用户/ ?? / invite),我的用户可以通过用户的名字或姓氏搜索其他用户吗?也就是说,在形式 og_invite_link_invite_page_for...

0  在Drupal 6中滑落弹出弹出窗口  ( Sliding popup in drupal 6 ) 
我在我的drupal模块中使用jquery创建一个滑出弹出窗口。 引用代码: http:// karlagius .com / 2009/02 / 08 / Create-a-sitepoint-lible-sliding-popup-in-jquery / 我的popup窗口,在模块中定义,是一个html字...

1  在Preprocess中删除块  ( Remove a block in preprocess ) 
我正在使用其他人制作的Drupal 6网站,我只需要在主页上删除一些块的语言。 我正在尝试使用上下文,通过使用 hook_context_init() < / code>,检查上下文是否处于活动状态并删除不期望的块。 但我有一个问题:如何在钩子功能中删除块? 我希望我的问题很清楚。 我不想因为脏标记而用CSS隐藏块...

0  如何为“视图参数PHP验证器代码”排除管理员(UID = 1),这限制了用户的UID值的视图?  ( How can i exclude adminuid 1 for views argument php validator code which lim ) 
我有一个菜单选项卡的页面视图,URL看起来像 my-site.com/user/%/my-view 我使用 return $argument == $GLOBALS['user']->uid; 默认参数。 然后我想仅限于当前登录的用户的参数,但我怎样才能排除管理员角色(UID = 1)? 阅读后读取本文我试过它但...

1  如何编写保存后的触发器  ( How to write a post save trigger ) 
node_api hook提供一堆触发器,允许您自定义可能发生的内容,例如psuale。 node_api保存操作码触发在点击节点"保存" 按钮后,但在节点表单中的信息插入数据库之前,请触发要发生的操作。我想创建一个触发器将是保存后触发器,在单击"保存" 按钮后触发我的自定义代码,但在节点信息已保存到数据库之后。有...

2  如何删除JavaScript文件?  ( How can i remove javascript files ) 
我想删除一些javascript文件,因为它们与我的移动主题上的自定义JavaScript冲突。 我尝试过以下代码,但它不起作用 hook_preprocess_page() ,我认为它真的在第一位置工作;这只是 $scripts的原始初始化在Page.tpl.php加载后 hook_preprocess_page(...

1  以另一个内容类型的创建/编辑形式以编程方式嵌入一个内容类型,并存储所有内容  ( Programmatically embed fields of one content type in the create edit form of ano ) 
我有drupal 6.x. 如何以另一种内容类型(内容类型Y)的创建/编辑形式(内容类型Y)的创建/编辑形式嵌入一个内容类型(内容类型x)的字段,并将所有数据存储在创建节点时/更新(存储y存储x和y数据)。 如果在drupal 6.x中是不可能的,我可以在drupal 7.x中工作。 提前感谢。 ...

0  将新字段添加到由Contrip模块创建的表中的标准操作  ( Standard practice for adding new fields to a table created by a contrib module ) 
我必须将字段添加到WebForm Control模块生成的WebForm表中。 我正在考虑在自定义模块的.install中实现启用钩子才能执行以下操作: function mymodule_enable( ) { ...

1  node_search()何时调用的节点模块?  ( When is node search in the node module called ) 
有人对核心进行了更改,特别是节点模块中的 node_search() 函数。 我不熟悉这个函数。它做了什么,并且在什么情况下被称为? ...

10  我可以将WebForm移动到另一个Drupal安装吗?  ( Can i move a webform to another drupal installation ) 
我在开发服务器上创建了一些WebForms,并希望将它们移动到生产安装。我可以用节点导出来做到这一点吗? 我并不关心迁移任何用户响应(因为我们只是测试)。 ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.