2016-10-20 2 views
0

Я хочу создать таблицу в существующей базе данных Wordpress, и я не могу ее создать. Я пишу этот код внутри пользовательских файлов плагинов. Пожалуйста, помогите мне с помощью этого кода.Невозможно создать таблицу в существующей базе данных Wordpress

function create_xml_table(){ 
    global $wpdb; 
    $tableName = $wpdb->prefix."XMLdata"; 
    $charset_collate = $wpdb->get_charset_collate(); 
    $sql = "CREATE TABLE $tableName(id int(10) NOT NULL AUTO_INCREMENT, 
       user_id varchar(255) NOT NULL, 
       post_id varchar(255) NOT NULL, 
       value varchar(255) DEFAULT '' NOT NULL, 
       time timestamp ON UPDATE CURRENT_TIMESTAMP, 
       PRIMARY KEY (id) 
      ) $charset_collate;"; 
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 
    dbDelta($sql); 
    register_activation_hook(__FILE__, 'create_xml_table'); 
} 
+0

Пожалуйста, попробуйте добавить следующее после ваших dbDelta называют глобального $ EZSQL_ERROR; var_dump ($ EZSQL_ERROR); Что показывает var_dump? – MirzaP

ответ

0

Вы должны сделать вот так.

function create_xml_table(){ 

global $wpdb; 
$tableName = $wpdb->prefix."XMLdata"; 
$charset_collate = $wpdb->get_charset_collate(); 
$sql = "CREATE TABLE $tableName(id int(10) NOT NULL AUTO_INCREMENT, 
          user_id varchar(255) NOT NULL, 
          post_id varchar(255) NOT NULL, 
          value varchar(255) DEFAULT '' NOT NULL, 
          time timestamp ON UPDATE CURRENT_TIMESTAMP, 
          PRIMARY KEY (id) 
          )$charset_collate;"; 
require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 
dbDelta($sql); 
} 

register_activation_hook(__FILE__, 'create_xml_table'); 
+0

Закройте свою функцию перед register_activation_hook() – kamleshpal

+0

Пожалуйста, объясните мне, в чем разница между моим кодом и этим? – user6891871

+0

Да, вы закрыли свою функцию после register_activation_hook() вместо того, чтобы я уже объяснил вам. – kamleshpal

Смежные вопросы