Результаты поиска для 'auto_increment'

Просмотр 15 результатов — с 76 по 90 (из 91)
  • function my_install(){
    	global $wpdb;
    	$tableName = $wpdb->prefix . 'my_table';
    	if($wpdb->get_var("SHOW TABLE LIKE  '$tableName'") != $tableName){
    		$sql = "CREATE TABLE" . $tableName . "(
    				id int NOT NULL AUTO_INCREMENT,
    				admin_comment TEXT,
    				alter_title TEXT,
    				PRIMARY KEY (id)
    		);";
    		$wpdb->query($sql);
    	}
    }
    register_activation_hook(__FILE__, 'my_install');

    Разместил этот код в /wp-content/plugins/my_plagin/my_plugin.php.
    Таблица не создаётся
    Что я делаю не так ?

    $tables['sources'] = "CREATE TABLE " . $wpdb->prefix . "sources (
    	  id int(9) NOT NULL AUTO_INCREMENT,
    	  source_url varchar(64),
    	  source_title varchar(64),
    	  PRIMARY KEY id (id)
    	) DEFAULT CHARSET=utf8;";

    Я нашёл один подобный файл…текстовый

    Вот его начало «— phpMyAdmin SQL Dump
    — version 3.5.5
    http://www.phpmyadmin.net

    — Хост: db4.unlim.com
    — Время создания: Апр 02 2013 г., 12:18
    — Версия сервера: 5.1.68-cll
    — Версия PHP: 5.3.17

    SET SQL_MODE=»NO_AUTO_VALUE_ON_ZERO»;
    SET time_zone = «+00:00»;

    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;


    — База данных: u6283_arygraph

    — ———————————————————


    — Структура таблицы wp_commentmeta

    CREATE TABLE IF NOT EXISTS wp_commentmeta (
    meta_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    comment_id bigint(20) unsigned NOT NULL DEFAULT ‘0’,
    meta_key varchar(255) DEFAULT NULL,
    meta_value longtext,
    PRIMARY KEY (meta_id),
    KEY comment_id (comment_id),
    KEY meta_key (meta_key)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

    — ———————————————————


    — Структура таблицы wp_comments

    CREATE TABLE IF NOT EXISTS wp_comments (
    comment_ID bigint(20)»

    Попытался его импортнуть, но мне пишет:

    Sorry, there has been an error.
    This does not appear to be a WXR file, missing/invalid WXR version number

    Попробую предположить, что максимальный ID¹ (ведь логично, что по значению 11 > 9) из предложенного списка есть эквивалент последней созданной (но не активной, в плане последнего поста) рубрики.
    В эту сторону надо копать, надо выбирать максимальный ID рубрики из массива дочерних рубрик и с ним работать.

    [1] Потому как в БД работает auto_increment )))

    смотрите в гугле «Как сбросить счетчик AUTO_INCREMENT»
    How to reset AUTO_INCREMENT

    Удалил команду CREATE DATABASE
    Опять ошибка

    — ———————————————————

    — Структура таблицы wp_commentmeta

    CREATE TABLE IF NOT EXISTS wp_commentmeta (
    meta_id bigint( 20 ) unsigned NOT NULL AUTO_INCREMENT ,
    comment_id bigint( 20 ) unsigned NOT NULL DEFAULT ‘0’,
    meta_key varchar( 255 ) DEFAULT NULL ,
    meta_value longtext,
    PRIMARY KEY ( meta_id ) ,
    KEY comment_id ( comment_id ) ,
    KEY meta_key ( meta_key )
    ) ENGINE = MYISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT =11;

    Ответ MySQL:
    #1046 — No database selected

    Итак, проанализировала разные бэкапы в Notepad++. Отчитываюсь 🙂

    Бэкап, по которому восстанавливали был без значков с вопросами. Нашла другой бэкап от 24 мая, он со значками. Вывод — могут бэкапы и со значками создаваться. Но откат на 24 мая не устраивает. В моем случае самое простое решение исправить руками, так как много изменений было, плагины доставляла, форум, бади пресс и т.д. Исправила все записи руками (благо их пока немного). Вот только на будущее хотелось бы найти решение, чтобы каждый раз руками не править.

    После исправления посмотрела в PMA — записи правильные. Создала бэкап плагином WordPress Database Backup и через cPanel. Вот что получилось.

    Бэкап плагина сохраняет записи со значками, да и сами записи удобно структурируются по строчке на запись. Вот, например, структура таблицы:

    CREATE TABLE <code>wp_commentmeta</code> (
      <code>meta_id</code> bigint(20) unsigned NOT NULL auto_increment,
      <code>comment_id</code> bigint(20) unsigned NOT NULL default '0',
      <code>meta_key</code> varchar(255) default NULL,
      <code>meta_value</code> longtext,
      PRIMARY KEY  (<code>meta_id</code>),
      KEY <code>comment_id</code> (<code>comment_id</code>),
      KEY <code>meta_key</code> (<code>meta_key</code>)
    ) ENGINE=MyISAM AUTO_INCREMENT=52 DEFAULT CHARSET=utf8 ;

    Нет только слов IF NOT EXISTS.
    С другой стороны, в бэкапе, созданном плагином нет ничего похожего на /*!40101 SET NAMES utf8 */;

    Бэкап, созданный Мастером резервного копирования из cPanel содержит все записи (включая страницы, активность, документы, созданные плагином для бадипресс и т.д.) в одну строку. Все записи без значков, с вопросами. Однако в этом бэкапе есть строка
    /*!40101 SET NAMES utf8 */;
    Вот, например, как выглядит таблица:

    DROP TABLE IF EXISTS <code>wp_commentmeta</code>;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE <code>wp_commentmeta</code> (
      <code>meta_id</code> bigint(20) unsigned NOT NULL auto_increment,
      <code>comment_id</code> bigint(20) unsigned NOT NULL default '0',
      <code>meta_key</code> varchar(255) default NULL,
      <code>meta_value</code> longtext,
      PRIMARY KEY  (<code>meta_id</code>),
      KEY <code>comment_id</code> (<code>comment_id</code>),
      KEY <code>meta_key</code> (<code>meta_key</code>)
    ) ENGINE=MyISAM AUTO_INCREMENT=52 DEFAULT CHARSET=utf8;
    /*!40101 SET character_set_client = @saved_cs_client */;

    Также в начале бэкапфайла есть такой раздел:

    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES cp1251 */;
    /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    /*!40103 SET TIME_ZONE='+00:00' */;
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

    В общем, жду ваш вердикт на тему «Как предохраняться от замены аксанов на вопросы». Также, скажите, пожалуйста, чем чревато отсутствие строки /*!40101 SET NAMES utf8 */;

    Попробуй создать эту таблицу, вероятно что то не получилось у mysql-аккаунта который использует wordpress, проверь права

    CREATE TABLE wp_wpsc_product_list (
    id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    name text NOT NULL,
    description longtext NOT NULL,
    additional_description longtext NOT NULL,
    price decimal(11,2) NOT NULL DEFAULT ‘0.00’,
    weight float NOT NULL DEFAULT ‘0’,
    weight_unit varchar(10) NOT NULL DEFAULT »,
    pnp decimal(11,2) NOT NULL DEFAULT ‘0.00’,
    international_pnp decimal(11,2) NOT NULL DEFAULT ‘0.00’,
    file bigint(20) unsigned NOT NULL DEFAULT ‘0’,
    image bigint(20) unsigned DEFAULT NULL,
    quantity_limited varchar(1) NOT NULL DEFAULT »,
    quantity int(10) unsigned NOT NULL DEFAULT ‘0’,
    special varchar(1) NOT NULL DEFAULT ‘0’,
    special_price decimal(11,2) NOT NULL DEFAULT ‘0.00’,
    display_frontpage varchar(1) NOT NULL DEFAULT ‘0’,
    notax varchar(1) NOT NULL DEFAULT ‘0’,
    publish varchar(1) NOT NULL DEFAULT ‘1’,
    active varchar(1) NOT NULL DEFAULT ‘1’,
    donation varchar(1) NOT NULL DEFAULT ‘0’,
    no_shipping varchar(1) NOT NULL DEFAULT ‘0’,
    thumbnail_image text,
    thumbnail_state int(11) NOT NULL DEFAULT ‘0’,
    date_added timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8

    а там вроде все нормально. вот опять попробовала данные в другую базу залить выдает
    CREATE TABLE IF NOT EXISTS wp_commentmeta (
    meta_id bigint( 20 ) unsigned NOT NULL AUTO_INCREMENT ,
    comment_id bigint( 20 ) unsigned NOT NULL DEFAULT ‘0’,
    meta_key varchar( 255 ) DEFAULT NULL ,
    meta_value longtext,
    PRIMARY KEY ( meta_id ) ,
    KEY comment_id ( comment_id ) ,
    KEY meta_key ( meta_key )
    ) ENGINE = MYISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT =3;

    А я в этом всем, если не чайник, то кофейник точно.

    правильно.. if(empty($ppbv_table)) не помогает..
    действительно, более полный код:

    global $wpdb; // вызываем глобальные переменные для работы с функцией
    $ppbv_tablename = $wpdb->prefix.'popular_by_views'; // совмещаем префикс и название таблицы
    
    function ppbv_create_table(){
        global $wpdb, $ppbv_tablename; // называя global, мы можем использовать эти переменные  в  функции
        $ppbv_table = $wpdb->get_results("SHOW TABLES LIKE '{$ppbv_tablename}'" , ARRAY_N); // если нет результатов, возвращает ноль
        if(empty($ppbv_table)){ // если таблиц нет, то:
            $create_table_sql = "CREATE TABLE {$ppbv_tablename} (
                id BIGINT(50) NOT NULL AUTO_INCREMENT,
                post_id VARCHAR(255) NOT NULL,
                views BIGINT(50) NOT NULL,
                PRIMARY KEY (id),
                UNIQUE (id)
            );"; // осторожнее с SQL-синтаксисом, он очень чувствителен)
            $wpdb->query($create_table_sql); // запускаем SQL запрос к БД
        }
    }
    register_activation_hook(__FILE__,'ppbv_create_table'); // запуск функции 'ppbv_create_table' во время активации плагина
    
     function ppbv_page_viewed(){
        if(is_single() && !is_page()){ // только при запуске постов, а не страниц блога
            global $wpdb, $post, $ppbv_tablename; // вызываем глобальные переменные для работы с функцией   в  функции
            $wpdb->flush(); // очищает буфер БД
            $data = $wpdb->get_row("SELECT * FROM {$ppbv_tablename} WHERE post_id='{$post->ID}'", ARRAY_A); // проверяет данные из столбца, который содержит post ID
            if(!is_null($data)){ // если ячейка с  данными есть
                $new_views = $data['views'] + 1; // увеличиваем количество просмотров на 1
                $wpdb->query("UPDATE {$ppbv_tablename} SET views='{$new_views}' WHERE post_id='{$post->ID}';"); // обновляем данные с учётом нового просмотра
                $wpdb->flush(); // очищает буфер БД
            }
            else { // если ещё нет ячейки с данными (тоесть, пока  ни одного просмотра)
                $wpdb->query("INSERT INTO {$ppbv_tablename} (post_id, views) VALUES ('{$post->ID}','1');"); // добавляем ячейку , отсчёт просмотров  начинаетсяс 1
                $wpdb->flush(); // очищает буфер БД
            }
        }
    }
    add_action('wp_head','ppbv_page_viewed'); // добавляет ppbv_page_viewed к wp_head-счётчику

    это код плагина, который я хочу сделать не-плагином

    ну а весь код:

    ifolder.ru/20860440

    еще возможно что таблица в базе данных не создастся автоматом, поэтому потребуется зайти в phpMyAdmin в бд твоего блога и выполнить такой SQL-запрос

    CREATE TABLE wp_linkclicks (
    link_id INT NOT NULL AUTO_INCREMENT ,
    link_url TEXT NOT NULL ,
    link_clicks INT NOT NULL ,
    link_date DATETIME NOT NULL ,
    link_title TEXT NOT NULL ,
    UNIQUE (
    link_id
    )
    );

    этот запрос создаст таблицу в базе данных и в нее будет заносится вся информация о кликах на ссылках

    где можно почитать про порядок назначения ID страницам в WP

    В любой доке на mySql в части атрибута auto_increment. В таблицу posts попадают посты, стат.страницы, их ревизии и аттачи.

    и что из себя представляют ярлыки?

    Ярлыки (слаги, slag) представляют собой прошедшие «санитарную» обработку названия (титлы) сущностей (постов, стат.страниц, рубрик, меток). Обработка заключается в удалении недопустимых в URL символов. Если установлен плагин транслитерации (rus-to-lat, cyr2lat), то русские буквы будут транслитерированы вместо обработки urlencode. Слаги используются движком для обработки «красивых» ссылок (ЧПУ).

    Ну вот это уже ближе к теме )
    Скажу что AUTO_INCREMENT я уже отключал,
    но только без снятия UNSIGNED толку не было (
    Спасибо.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Тип данных можно поменять, например, на VARCHAR, если убрать атрибуты UNSIGNED и AUTO_INCREMENT, имеющие смысл только для числовых данных.

    Автор anyuta

    (@anyuta)

    Все исправили
    Проблема была в базе данных

    После переноса стало
    AUTO_INCREMENT=274877907701

    Вместо AUTO_INCREMENT=678

    админ поменял и заработало

Просмотр 15 результатов — с 76 по 90 (из 91)