如果要执行检索一个字段但检索多个结果的单个查询(例如,为了避免往返数据库),最简单的解释是使用get_results()
相反
接受您的查询:
$wpdb->get_var( $wpdb->prepare("SELECT `meta_value` FROM `wp_usermeta` WHERE `meta_key` = \'first_name\' and `user_id` = %d ", $_REQUEST[\'empid\']))
。。。看看它与另一个领域的几乎相同:
$wpdb->get_var( $wpdb->prepare("SELECT `meta_value` FROM `wp_usermeta` WHERE `meta_key` = \'last_name\' and `user_id` = %d ", $_REQUEST[\'empid\']))
。。。我建议将它们合并到一个查询中:
$results = $wpdb->get_results($wpdb->prepare("
SELECT `meta_key`, `meta_value`
FROM `wp_usermeta`
WHERE `meta_key` IN (\'first_name\', \'last_name\')
AND `user_id` = %d;", $_REQUEST[\'empid\']));
您的
$results
对象将是具有
meta_key
和
meta_value
每个对象的属性。
然后,您可以按如下方式获取各个字段:
foreach($results as $rec) {
switch($rec->meta_key) {
case "first_name":
$_EmployeeFName = $rec->meta_value;
break;
case "last_name":
$_EmployeeLName = $rec->meta_value;
break;
}
}
使用
get_results()
允许您不仅同时查询这两个选项,还可以区分这两个选项(提供
meta_key
以及相应的
meta_value
).