类对象 wpdb 无法转换为字符串。

3
我正在尝试通过给出组织名称来获取其ID。 我有以下代码:
$orgid= $wpdb->get_var("SELECT organisationid FROM $wpdb->$table_name1 WHERE organisationname=' " . $organisation . "'");

这行代码出现了错误: 可捕获的致命错误:
Object of class wpdb could not be converted to string

我希望将这个ID反映到页面上。

我已经阅读了代码库,但是不理解。我该如何解决这个问题?


在这里 ' " . $organisation . "' 有一个空格,移除它。使用 '" . $organisation . "' 并确保拼写正确,可能在您的数据库中是 organisaitonname 还是 organisationname?无论如何都应该是这样拼写的。并对该变量进行 var_dump。如果有空格引入,请使用 trim() - Funk Forty Niner
嗨,弗雷德,我已经尝试过了,但它没有解决我的问题。谢谢。 - Josh
1
如果是在$wpdb->$table_name1中出现问题,根据我目前的发现,尝试在它周围加上大括号,例如FROM {$wpdb->$key},可以解决这个错误信息。参考链接:https://wordpress.org/support/topic/object-of-class-wpdb-could-not-be-converted-to-string-1 - Funk Forty Niner
当我在谷歌上搜索这个问题时,已经有人发布了同样的方法的答案。 - Funk Forty Niner
2个回答

6

如果你要在字符串中使用变量作为变量名,记得要用大括号将其包裹:

"SELECT organisaitonid FROM {$wpdb->$table_name1} WHERE organisaitonname = '" . $organisation . "'"
                       //    ^  important       ^

注意:确保$table_name1的值与$wpdb的属性相对应,以便匹配。


这个很好用。谢谢!另外需要注意的是,在{$wpdb->$table_name1}中不需要使用$wpdb->。 - Josh

2

Try also

$wpdb->table_name1

改为:

$wpdb->$table_name1

没有美元符号"$"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接