【问题标题】:Object of class wpdb could not be converted to stringwpdb 类的对象无法转换为字符串
【发布时间】:2016-02-18 23:33:29
【问题描述】:

我正在尝试通过提供组织名称来获取组织的 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() 也应该引入空格。
  • 嗨 Fred,我已经这样做了,但它并没有解决我的问题。谢谢
  • 然后可以在FROM $wpdb->$table_name1。根据我迄今为止发现的有关错误消息的信息,请尝试在其周围使用大括号,即:FROM {$wpdb->$key} 根据此处的发现wordpress.org/support/topic/…
  • 当我在谷歌上搜索这个^时,已经用同样的方法发布了一个答案。

标签: php mysql wordpress


【解决方案1】:

如果你要在字符串中使用变量变量,记得用花括号括起来:

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

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

【讨论】:

  • 这很好用。谢谢!另一个注意事项是您不需要 {$wpdb->$table_name1} 中的 $wpdb->
【解决方案2】:

也试试

$wpdb->table_name1

代替:

$wpdb->$table_name1

没有美元“$”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2015-07-27
    • 2012-04-29
    • 2011-04-06
    • 2011-11-30
    • 2011-08-30
    相关资源
    最近更新 更多