我目前正在尝试获取提交表单的人的用户名,与他们提交的值一起存储在数据库中。
这是我的函数中的第 139 行:
$retval = $newdb->query("SELECT * FROM $table WHERE user = '$hf_username' ");
Run Code Online (Sandbox Code Playgroud)
add_action("init", "ref_access");
function ref_access() {
global $error;
if ( is_user_logged_in() ) {
global $quanid;
global $newdb;
$hf_username = wp_get_current_user();
$inputValue = isset($_POST['$quanid']);
$newdb = new wpdb( 'user', 'password', 'db', 'localhost' );
$retval = $newdb->query("SELECT * FROM $table WHERE user = '$hf_username' ");
if( mysqli_num_rows($retval) > 0)
{
$newdb->query("UPDATE table SET user = '$hf_username' "); //If user exists, update
}
else
{
global $table;
global $newdb;
$newdb->insert(
$table,
array(
'ItemID' => $quanid,
'Price' => $inputValue,
'user' => $hf_username
)
);
}
} else {
$error = "Error: You must be logged in to submit prices";
return;
}
}
Run Code Online (Sandbox Code Playgroud)
wp_get_current_user返回一个WP_User对象,而不是用户名作为字符串。用户名存储在对象的user_login属性中WP_User。
$hf_user = wp_get_current_user();
$hf_username = $hf_user->user_login;
Run Code Online (Sandbox Code Playgroud)
也就是说,您的代码似乎有一些问题:
mysqli_功能混合在一起。$newdb->query将已经返回所选行的数量,无需调用mysqli_num_rows,它不会以您期望的方式工作。global $wpdb. 如果您访问安装了 WordPress 的同一个数据库,则不需要这样做。