我最近完全是从头开始制作一个插件,我试图制作一个关于插件激活的表格,但我在其中取得了成功,但是现在我想制作一个以上关于插件激活的表格,但是我没有得到预期的结果。
它仅使两个表之一,这是下面的代码。
// Registering plugin
register_activation_hook(__FILE__,'myplugin_activate');
function myplugin_activate()
{
global $wpdb;
$table_name1 = $wpdb->prefix . "myentries";
$table_name2 = $wpdb->prefix . "myemail";
//installed_ver = get_option('my-voting-version');
if( $wpdb->get_var("show tables like '$table_name1' ") != $table_name1)
{
$sql = "CREATE TABLE IF NOT EXISTS `" . str_replace('`', '', $table_name1) . "`(
id mediumint(9) unsigned NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
sub longtext NOT NULL,
message longtext NOT NULL,
);";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta($sql);
}
if( $wpdb->get_var("show tables like '$table_name2' ") != $table_name2 )
{
$sql = "CREATE TABLE IF NOT EXISTS `" . str_replace('`', '', $table_name2) . "`(
id mediumint(9) unsigned NOT NULL AUTO_INCREMENT,
email varchar(50) NOT NULL,
PRIMARY KEY (id)
);";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta($sql);
}
}
此代码仅使一个表成为最后一个“ * prefix_myemail”。请建议我或给我写正确的代码以纠正此问题。
预先感谢您的帮助。
可能是您忘记了myentries
表的主键,请尝试像这样添加主键
if( $wpdb->get_var("show tables like '$table_name1' ") != $table_name1)
{
$sql = "CREATE TABLE IF NOT EXISTS `" . str_replace('`', '', $table_name1) . "`(
id mediumint(9) unsigned NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
sub longtext NOT NULL,
message longtext NOT NULL,
PRIMARY KEY (id)
);";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta($sql);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句