我正在使用此功能在帖子类型上创建关系:
private function setObjectTerms($last_insert_id){
//INSERT course_type/RELATIONSHIP
wp_set_object_terms($last_insert_id,$this->course_type,'course-type');
}
在上面,课程类型可以是“免费”或“付费”,而$ last_insert_id只是一个数字。
无论如何,我一直收到此错误,也不知道为什么:
WordPress数据库错误:[您的SQL语法有误;校验
与您的MySQL服务器版本相对应的手册
在'AS tr INNER JOIN AS tt ON tr.term_taxonomy_id =附近使用的语法
tt.term_taxonomy_id WHERE tr.ob'在第1行]
选择tr.term_taxonomy_id
从AS TR内连接到TR上tr.term_taxonomy_id =
tt.term_taxonomy_id WHERE tr.object_id IN(15534)和tt.taxonomy IN
(“课程类型”)
奇怪的是,我一直在使用相同的功能,并且已经起作用。我只是不明白为什么生成的SQL不正确。谁能指出我正确的方向?
最佳答案
该失败的查询中缺少wp_term_taxonomy
和wp_term_relationships
表名,因此,毫不奇怪,MySQL会对此感到困惑。
在WordPress内部,global $wpdb
对象将这些表名提供给构建查询的函数。如果表名称的字符串为空,则尚未初始化。
在调用此函数之前,您可能未正确设置WordPress。
看到此:How can I initialize wpdb class in a php file?
关于mysql - Wordpress wp_set_object_terms SQL错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21716073/