插件管理中查询自定义表的get_var结果为空

时间:2013-12-11 作者:user2981243

(有很多与此相关的问题,但我找不到有效的答案。)

当我从多站点的自定义插件查询自定义表时,get\\u var返回空。我错过了什么?(我还尝试了get\\u row和get\\u results,它们也返回空。)

这是针对子网站管理中使用jquery/ajax的发布/取消发布按钮。publish函数起作用,在子网站用户的博客中创建一篇新文章,并在自定义表中插入post\\u id、blog\\u id和uniquecode。只要我能够从自定义表中删除正确的行,unpublish函数也可以工作。

不起作用的是,在unpublish函数中,在从自定义表中删除行之前,我需要检索post\\u id并从子网站用户的博客中删除post,但post\\u id的get\\u var查询返回空。

以下是unpublish函数的相关部分,显示了get\\u var查询和删除正确的行,以及底部的print\\r检查:

global $wpdb; 
$customtable = $wpdb->$table_prefix.\'customtable\'; // works for $wpdb->delete but not $wpdb->get_var
$user_blog_id = get_current_blog_id(); // works 
$uniquecode = $_POST[uniquecode]; // works via jquery-ajax, value obtained from external database
$post_id = $wpdb->get_var($wpdb->prepare(\'SELECT post_id FROM \'.$customtable.\' WHERE uniquecode = \'.$uniquecode.\' AND blog_id = \'.$user_blog_id.\'\')); // not working, returns empty
wp_delete_post ($post_id, true); // $post_id = $wpdb->get_var is empty, preventing wp_delete_post from working 

$wpdb->delete( $customtable, array // works - deletes row from $customtable 
    (
    \'blog_id\'=>$user_blog_id,  
    \'uniquecode\'=>$uniquecode 
    ),  
    array(\'%d\',\'%s\')    
);      
echo \'Post ID#\';
print_r($post_id); // returns empty
?><br><?
    echo \'Unique code #\';
print_r($uniquecode); // returns correct value
?><br><?
echo \'Blog ID#\';
print_r($user_blog_id); // returns correct value

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

您的查询语句中有错误。更改为此

$post_id = $wpdb->get_var( "SELECT post_id FROM $customtable WHERE uniquecode = \'$uniquecode\' AND blog_id = \'$user_blog_id\'" );

结束

相关推荐

Include jQuery UI as a whole

是否可以将jQuery UI作为一个整体,而不是:wp_enqueue_script(\'jquery-ui-core\'); wp_enqueue_script(\'jquery-effects-core\'); // a lot of other jquery ui imports.... 我在codex中进行了搜索,找到了包含脚本的完整列表,但找不到将完整jQuery UI版本作为一个导入包含在内的方法,如:wp_enqueue_script(\'jquery-ui\');