为什么数据库示例有时会以ADD_OPTION调用结束?

时间:2020-09-01 作者:Matthew Brown aka Lord Matt

以这个添加表的非常普通的演示为例。我想我们以前都见过这样的例子。

function create_table() {
   global $wpdb;
   $table_name = $wpdb->prefix . \'table_name\';

   if( $wpdb->get_var( "show tables like \'{$table_name}\'" ) != $table_name ) {

       $sql = "CREATE TABLE " . $table_name . " (
           id mediumint(9) NOT NULL AUTO_INCREMENT,
           col VARCHAR(100) NOT NULL,
           PRIMARY KEY  (id)
       );";

       require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
       dbDelta( $sql );

       add_option( EmailLog::DB_OPTION_NAME, EmailLog::DB_VERSION );
   }
}
令我困惑的是这句话:add_option( EmailLog::DB_OPTION_NAME, EmailLog::DB_VERSION );. 参考页显示add\\u选项添加了一个选项。哎呀,我从没想过会是这样。撇开我的讽刺不谈,那句台词是怎么回事?为什么需要它?它到底做什么?

1 个回复
SO网友:Jacob Peattie

它在使用数据库版本的数据库中添加一条记录。如果插件在将来的版本中更改其数据库结构,则可以在将来使用此选项来确定是否需要更新给定站点上的数据库结构。

您可能在更新WordPress时看到过这一点,它告诉您需要升级数据库。每当发生这种情况时,WordPress都会记录正在使用的数据库版本,以便在更新WordPress时可以查看是否需要升级。

相关推荐

$wpdb selects wrong database

我在另一个WordPress网站的文件夹中创建了一个新的WordPress网站。示例-主站点。com-mainsite。com/第二站点我创建了一个插件,并使用$wpdb 将数据插入数据库,插件将数据插入第一个/父站点的数据库。我使用的代码包括$wpdb 如下所示:$path = $_SERVER[\'DOCUMENT_ROOT\']; include $path . \'/wp-load.php\'; include $path . \'/wp-config.php\'; inc