在 $wpdb class 中使用 update() 时出现致命错误

Fatal error when using update() in $wpdb class

我正在尝试更新我的 WordPress 数据库中的自定义 table,但我不断收到此错误:

Fatal error: Call to a member function update() on null in /Users/jlf/project/wp-admin/controls.php on line 21

这是我的 PHP:

    ini_set("display_errors",1); 
    error_reporting(E_ALL);

    $accentColor    = $_POST["accentColor"];
    $donateColor    = $_POST["donateColor"];
    $donateHover    = $_POST["donateHover"];
    $ticketStatus   = $_POST["ticketStatus"];
    $logoPath       = $_POST["logoPath"];
    $characterPath  = $_POST["characterPath"];

    global $wpdb;
    $q_result = $wpdb->update(             // line 21
        'wp_nyicff', 
        array(
            'accent_color'      =>  $accentColor, 
            'donate_color'      =>  $donateColor, 
            'donate_hover'      =>  $donateHover, 
            'tickets_status'    =>  $ticketStatus, 
            'logo_path'         =>  $logoPath, 
            'character_path'     => $characterPath
            ),
        array( 'id' => 1 ), 
        array( '%s', '%s', '%s', '%s', '%s', '%s' ), 
        array( '%d' )
    );

    if ($q_result) {
        print('<script>window.location.href = "index.php";</script>');
    }
    else   {
        die(mysql_error());
        print("<br><a href='index.php'>back</a>");
    }

所有变量都反映了它们的正确值。我已经全球化 $wpdb。可能出了什么问题?

$wpdb 为空。我认为通过在此文件中将其全球化可以阻止这种情况,但我错了。结果我需要 wp-load.php 文件。

https://wordpress.org/support/topic/wpdb-returning-null 帮我解决了这个问题。

在 PHP 的顶部我写道:

require("../wp-load.php");

此外,我了解到将文件直接放入 /wp-admin 目录是不好的做法(就像我在这种情况下所做的那样)。最好制作一个插件来处理所有这些。