我创建了一个简单的html表单来提交我编写的php脚本的值。我正在使用wordpress。我希望脚本在user_meta表中查找用户,并选择用户ID。然后,我希望脚本在wp_users表中查找该用户的电子邮件。这是我的代码:
<?php
global $wpdb;
$userid = $wpdb->get_var ( $wpdb->prepare (
"
SELECT user_id
FROM $wpdb->user_meta
WHERE user_meta = %s
",
$_POST["submitted_value"] ) );
$useremail = $wpdb->get_var (
"
SELECT user_email
FROM $wpdb->wp_users
WHERE ID = %s
"
, $userid );
echo 'Car Owner Email is' . $useremail . '!';
echo "test" . $_POST["submitted_value"] ."!";
?>
现在,我已经运行了脚本,最后一行似乎正在运行 - 它正在从我的html表单中打印'submitted_value' - 但它似乎不是在查询数据库。
这是整个php脚本 - 我将它放在wordpress插件目录中 - 我是否需要添加其他内容才能让它查询我的wordpress数据库?
答案 0 :(得分:0)
您应该更新代码:
<?php
global $wpdb;
$userInfo = $wpdb->get_row ( $wpdb->prepare ("
SELECT user_id, user_email
FROM $wpdb->usermeta um
INNER JOIN $wpdb->users u ON (u.ID=um.user_id)
WHERE meta_key = %s", //OR meta_value !!
$_POST["submitted_value"]
));
echo 'Car Owner Email is' . $userInfo->user_email. '!';
echo "test" . $_POST["submitted_value"] ."!";
?>
但您可以轻松地按照WP codex:http://codex.wordpress.org/Function_Reference/get_users/
进行操作$users = get_users(array('meta_key' => $_POST["submitted_value"]));
在这种情况下,您将获得所有可能的用户,您可能需要运行循环。
答案 1 :(得分:0)
global $wpdb;
$query1 = "SELECT user_id FROM wp_usermeta WHERE meta_key = 'your_meta_key_name' AND meta_value = '$_POST["submitted_value"]'";
$userid = $wpdb->get_var($query1);
$query = "SELECT user_email FROM wp_users WHERE ID = '$userid'";
$useremail = $wpdb->get_var($query);
在WHERE子句中,您需要提供必须映射值的元键。例如:WHERE meta_key ='nickname'和meta_value ='pranita'。 将'your_meta_key_name'替换为与您的表单值匹配的正确密钥。
如果您不理解字段,请检查phpmyadmin中的wp_usermeta表。
希望这会有所帮助。所有最好的