gpt4 book ai didi

wordpress - 可捕获的 fatal error : Object of class WP_User could not be converted to string in/directory/on line 139

转载 作者:行者123 更新时间:2023-12-02 09:34:07 26 4
gpt4 key购买 nike

我目前正在尝试获取提交表单的人的用户名,与他们提交的值一起存储在数据库中。

这是我的函数中的第 139 行:

$retval = $newdb->query("SELECT * FROM $table WHERE user = '$hf_username' ");
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;
}

}

最佳答案

wp_get_current_user 返回一个 WP_User 对象,而不是字符串形式的用户名。用户名存储在 user_login 对象的 WP_User 属性中。

$hf_user = wp_get_current_user();
$hf_username = $hf_user->user_login;

也就是说,您的代码似乎有一些问题:
  • 您似乎将 WordPress 数据库函数与内置的 mysqli_ 函数混合在一起。 $newdb->query 将已经返回所选行的数量,无需调用 mysqli_num_rows 并且它不会以您期望的方式工作。
  • 您正在声明 wpdb 的一个新实例,而不是通过 global $wpdb 使用现有的数据库对象。如果您访问安装了 WordPress 的同一个数据库,则不需要这样做。
  • 关于wordpress - 可捕获的 fatal error : Object of class WP_User could not be converted to string in/directory/on line 139,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29189996/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com