在空 WORDPRESS 上调用成员函数 insert()

Posted

技术标签:

【中文标题】在空 WORDPRESS 上调用成员函数 insert()【英文标题】:Call to a member function insert() on null WORDPRESS 【发布时间】:2015-07-07 06:54:38 【问题描述】:

我正在为 wordpress 编写一个插件。我刚刚完成了我的管理页面。它有一个提交按钮。表单元素的动作属性正在发送到“database.php”文件。

这是database.php的代码:

<?php
global $wpdb;

        $table_name =  $wpdb->prefix . "ArmPoll_Questions";
    if($_SERVER["REQUEST_METHOD"]=="POST")
    

        $wpdb->insert($table_name, array('id'=>'','Question'=>'How r u?'));

    
?>

但它会导致一个错误,上面写着

在 null 上调用成员函数 insert()

【问题讨论】:

【参考方案1】:

您不能只编写一个直接的 PHP 页面并期望它能够工作。您需要将其编写为插件或在 Wordpress 框架内工作的东西。您得到的错误是 $wpdb object 未定义。如果你把它写成插件$wpdb会自动为你定义。

How to Write a Wordpress Plugin

另一种选择是打开您自己的 mysql 连接并直接以这种方式进行插入。

How to insert data using mysqli

【讨论】:

【参考方案2】:

您可以加载定义 wpdb 的核心功能

define( 'SHORTINIT', true );
require( BASE_PROY_ROOT.'/wp-load.php' );

如果只加载基本的 WP CORE,SHORTINIT 设置为“true”。 然后你可以使用 全球 $wpdb;

【讨论】:

以上是关于在空 WORDPRESS 上调用成员函数 insert()的主要内容,如果未能解决你的问题,请参考以下文章

wordpress 在functions.php第5行的非对象上调用成员函数add_section()

WordPress 定制程序错误:调用未知的成员函数 add_setting()

如何修复 WooCommerce 中的“未捕获的错误:在 null 上调用成员函数 get_tax_class()”?

在空容器上调用 std::partition 的行为?

为啥在空引用上调用(静态)方法不会抛出 NullPointerException?

NullPointerException:尝试在空对象引用上调用虚拟方法 findViewById(int)'