2014-09-06 2 views
-1

У меня только начинается разработка плагина. но dbDelta() не работает, когда был изменен запрос MySQL, и после этого я пытаюсь деактивировать и активировать плагин дальше, но таблица не обновляется с использованием dbDelta() finction.Обновить таблицу, если выходите во время активации плагина

if ($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) { 

    $sql = 'CREATE TABLE '.$table_name.' (
    id int(11) NOT NULL AUTO_INCREMENT, 
    product_name text NOT NULL, 
    UNIQUE KEY id (id))'; 

    //reference to upgrade.php file 
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 
    dbDelta($sql); 
} 
+0

Показать код пожалуйста. – Sven

+0

отредактированный код, пожалуйста, см. –

+0

Вы уверены, что функция, содержащая вышеуказанный код, правильно подключена с помощью register_activation_hook? Может быть, еще немного кода? – Sven

ответ

0

вы бы лучше просто проверить существует таблица непосредственно назвав его ...

global $wpdb; 
$table_name= 'name of table without the prefix!' 

if(!isset($wpdb->$table_name)){ 
    $sql = 'CREATE TABLE '.$table_name.' (
    id int(11) NOT NULL AUTO_INCREMENT, 
    product_name text NOT NULL, 
    UNIQUE KEY id (id))'; 

    //reference to upgrade.php file 
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 
    $result=dbDelta($sql); 
    var_dump($result); 
    } 
Смежные вопросы