在 $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
目录是不好的做法(就像我在这种情况下所做的那样)。最好制作一个插件来处理所有这些。
我正在尝试更新我的 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
目录是不好的做法(就像我在这种情况下所做的那样)。最好制作一个插件来处理所有这些。