我开始使用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。
谢谢!
答案 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指出的那样,在返回单个用户的结果时,订单没有做任何事情。