如何在 WordPress 中正确添加版本或 table 数据库?
How can I add properly the version or a table database in WordPress?
我刚才看到我们可以根据 add_option(db_version)
更新 wordpress tables。因此,我的问题是如何正确添加此版本选项并检查 table 值是否根据当前版本更改。
这是代码的样子。
// global $agro_db_ver;
global $wpdb;
// $db_name = DB_NAME;
$charset_collate = $wpdb->get_charset_collate();
$table_name = $wpdb->prefix . 'table1';
$table_user = $wpdb->prefix . 'users';
$sql = "CREATE TABLE IF NOT EXISTS $table_name(
ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
userID BIGINT(20) UNSIGNED NOT NULL,
Name VARCHAR(200) NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (userID) REFERENCES $table_user(ID)
) $charset_collate;";
require_once(ABSPATH . "wp-admin/includes/upgrade.php");
dbDelta($sql);
// Adding version control
add_option('agro_db_ver', '1.0.0');'
但是激活挂钩中的数据库不显示版本。我如何检查 table 更改?
您可以使用最新版本值定义常量变量,您需要检查数据库中的选项值以使用您的常量值验证版本值,如果不是最新则更新
我发现您的代码中有错误。当你问问题时,我不确定它是否来了。但是我 运行 你的代码 add_option('agro_db_ver', '1.0.0');
在我本地的页面模板中工作正常。
能否请您尝试使用 update_option 功能?
我试过像这样使用全局变量。
// Define global db_variables
$agro_db_ver = '1.0.0';
global $agro_db_ver;
define('agro_db_ver', '1.0.0');
但是触发器和定义错误,在数据库中 WordPress 无法识别该选项,我会尝试使用 update_option,如@fahad 所述。之后,验证了你的建议,非常感谢@Janki
我刚才看到我们可以根据 add_option(db_version)
更新 wordpress tables。因此,我的问题是如何正确添加此版本选项并检查 table 值是否根据当前版本更改。
这是代码的样子。
// global $agro_db_ver;
global $wpdb;
// $db_name = DB_NAME;
$charset_collate = $wpdb->get_charset_collate();
$table_name = $wpdb->prefix . 'table1';
$table_user = $wpdb->prefix . 'users';
$sql = "CREATE TABLE IF NOT EXISTS $table_name(
ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
userID BIGINT(20) UNSIGNED NOT NULL,
Name VARCHAR(200) NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (userID) REFERENCES $table_user(ID)
) $charset_collate;";
require_once(ABSPATH . "wp-admin/includes/upgrade.php");
dbDelta($sql);
// Adding version control
add_option('agro_db_ver', '1.0.0');'
但是激活挂钩中的数据库不显示版本。我如何检查 table 更改?
您可以使用最新版本值定义常量变量,您需要检查数据库中的选项值以使用您的常量值验证版本值,如果不是最新则更新
我发现您的代码中有错误。当你问问题时,我不确定它是否来了。但是我 运行 你的代码 add_option('agro_db_ver', '1.0.0');
在我本地的页面模板中工作正常。
能否请您尝试使用 update_option 功能?
我试过像这样使用全局变量。
// Define global db_variables
$agro_db_ver = '1.0.0';
global $agro_db_ver;
define('agro_db_ver', '1.0.0');
但是触发器和定义错误,在数据库中 WordPress 无法识别该选项,我会尝试使用 update_option,如@fahad 所述。之后,验证了你的建议,非常感谢@Janki