【发布时间】:2019-08-07 04:05:46
【问题描述】:
我有一个 WordPress 网站,我进行查询以获取所有具有特定能力/范围的用户。从列表中,我得到一个带有时间戳的“meta_value”,然后我检查它是否小于当前时间(过期)
$sql = "SELECT user_id
FROM `wp_usermeta`
WHERE `meta_key` = 'wp_capabilities'
AND `meta_value` LIKE '%\"premium\"%'";
$query = mysqli_query($cn, $sql);
while ($row = mysqli_fetch_array($query))
{
$user_id = $row["user_id"];
$sql = "SELECT meta_value
FROM `wp_usermeta`
WHERE `meta_key` = '_expire_user_date'
AND user_id = '$user_id'";
$query_time = mysqli_query($cn, $sql);
$rows_query_time = mysqli_fetch_array($query_time);
$expire_user_date = $rows_query_time["meta_value"];
$now = time();
if ($expire_user_date && $now > $expire_user_date)
{
echo $user_id." expired<br>";
}
}
可以使用JOIN之类的优化查询吗?
提前致谢
【问题讨论】:
-
您是否在寻找已过期且具有特定功能的用户?
-
你好。是的,谁已过期并具有“高级”功能。
-
你应该使用准备好的语句,否则你的代码容易受到 SQL 注入的攻击。