在更新博客名选项等之后向表中插入/更新值

时间:2012-06-19 作者:Ken

当用户从常规设置页面更新值blogname、blog描述选项时,我正在尝试将其更新到另一个表中。

我使用这个代码,

$hook_array = array(\'update_option_blogname\',\'update_option_admin_email\',\'update_blogdescription\',\'update_option_home\',\'update_option_siteurl\');

foreach($hook_array as $hook)
{
    add_action($hook, \'my_functione\', 10, 1);

}

function my_functione($arg)
{
    global $wpdb;
    $the_id = get_current_blog_id();
    $blogname =  get_option(\'blogname\'); 
    $blogdescr =  get_option(\'blogfulldescription\');
    $wp_blogs_info = $wpdb->base_prefix . "blogs_info";

    $wpdb->query("UPDATE " . $wp_blogs_info . " SET site_title=".$blogname.", site_description=".$blogdescr." where blog_id = \'" . (int)$the_id . "\'");

}
这是桌子,

  blog_id int NOT NULL,
  countries_id int(3) NOT NULL,
  site_title varchar(64) NOT NULL,
  site_description varchar(64) NOT NULL,
  site_tags varchar(64) NOT NULL,
  PRIMARY KEY (blog_id)
但是,它不会更新,尽管当前博客的blog\\u id有一个值。。请帮忙。

1 个回复
最合适的回答,由SO网友:HungryCoder 整理而成

嗯,我刚刚发现您的查询有误。我为你写了这封信:

$wpdb->query("UPDATE `" . $wp_blogs_info . "` SET `site_title`=\'".$wpdb->escape($blogname)."\', `site_description` = \'".$wpdb->escape($blogdescr)."\' where blog_id = \'" . (int)$the_id . "\'");

相关推荐

是否以编程方式取消序列化WP_OPTIONS选项?

我需要以编程方式取消wp\\U选项的序列化。我正在创建一个Java应用程序来更改数据库信息,例如wp\\u选项上的一些选项,这样我就不需要访问面板来进行更改。如何取消序列化选项,如 a:4:{i:0;s:5:\"posts\";i:1;s:5:\"pages\";i:2;s:4:\"tags\";i:3;s:10:\"categories\";} 或 a:1:{s:12:\"_multiwidget\";i:1;} 更改它们并重新序列化到数据库?谢谢