Mysql只查询当前用户

时间:2015-04-18 05:03:20

标签: mysql database wordpress wordpress-plugin filtering

我开始使用wpdatatables插件, 在后端,它有一个输入MySql查询的地方,可以创建一个表。

我有:

SELECT id, currentuserid, text, date_created
FROM  `1items` 
WHERE currentuserid = %d
ORDER BY  `1items`.`currentuserid` 

其中列出了我需要从数据库中提取的所有表格,但是,我想知道是否有办法在MySql中仅为当前用户的ID动态过滤。

在第二栏" currentuserid"它会提取所有用户的ID并将其输入到表格中。

示例:如果我以用户ID 4登录 - 我希望查询过滤掉其他用户 - 截至目前,上述查询会返回所有用户ID的表格。

在搜索wordpress stackexchange时,我找到了这个:PHP MySQL query - return results for current user only 哪个不起作用,或者我没有使用wpdatatables。

谢谢!

1 个答案:

答案 0 :(得分:0)

%d是占位符,它没有自己的内在价值。它在准备语句中用于帮助防止SQL注入攻击

所以你需要做这样的事情:

$currentUser    = get_current_user_id();

$wpdb->query( $wpdb->prepare( 
    "
        SELECT id, currentuserid, text, date_created
        FROM  `1items` 
        WHERE currentuserid = %d
    ", 
        $currentUser
) );

正如Brendan Long指出的那样,在返回单个用户的结果时,订单没有做任何事情。