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

Просмотр 15 результатов — с 61 по 75 (из 107)
  • Таблица wp_posts и колонка ID — auto_increment и любое необдуманное вмешательство приведет к геморою в дальнейшем. Не редактируйте айдишники, редактируйте тайтлы записи.
    Я не могу все никак придумать:

    Нарушена «привычная глазу» ссылочная хронология. Глаз мозолит

    — как так может быть? В урл вас циферки не устраивают? Ну это же … бред.
    Не обращайте внимание. Перфекционизм можно направить в полезное русло.

    • ЗАДАЧА:
      Столкнулся с такой проблемой, что при количестве постов 20 000+ выборка занимала по 30 секунд при выборе каждой страницы. То есть база данных постоянно выбирает все записи, чтобы выбрать из всех какое-то количество (штук на страницу). Компьютер слабоват для глобальных масштабов, но в планах довести до 7 000 000+ постов. Обычно место на жёстких дисках не проблема.
      ВОПРОС: Если возможность оптимизировать выборки?
      Моё РЕШЕНИЕ (действующий в проекте MySQL): (возможно стоит добавить это решение в релиз WP)
      Поэтому решение выбрал такое, что при поступлении выборки через функцию get_posts () (wp-includes/class-wp-query.php) нужно «перехватить» стандартный запрос, модифицировать функцию запроса и выдать уже построенный «список».
      Для хранения «списков» сортинга в базе данных были сотворены таблицы:
      CREATE TABLEwp_сорт` (
      номер_сорта int(10) unsigned NOT NULL AUTO_INCREMENT,
      значение_сорта text NOT NULL,
      время_сорта datetime NOT NULL DEFAULT ‘1000-01-01 00:00:00’,
      период_сорта int(10) unsigned NOT NULL,
      мд5_сорта varchar(32) NOT NULL,
      записей_сорта int(10) unsigned NOT NULL,
      вызов_сорта datetime NOT NULL DEFAULT ‘1000-01-01 00:00:00’,
      PRIMARY KEY (номер_сорта),
      UNIQUE KEY инд_мд5_сорта (мд5_сорта) USING BTREE
      ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;`
      CREATE TABLEwp_сортировка` (
      номер_поста bigint(20) unsigned NOT NULL,
      номер_страница int(10) unsigned NOT NULL DEFAULT ‘0’,
      номер_на_странице tinyint(3) unsigned NOT NULL DEFAULT ‘0’,
      номер_сорта int(10) unsigned NOT NULL DEFAULT ‘1’,
      UNIQUE KEY уник (номер_страница,номер_на_странице,номер_сорта) USING BTREE,
      KEY внешка_поста (номер_поста) USING BTREE,
      KEY внешка_сорта (номер_сорта),
      CONSTRAINT внешка_поста FOREIGN KEY (номер_поста) REFERENCES wp_posts (ID) ON DELETE CASCADE ON UPDATE CASCADE,
      CONSTRAINT внешка_сорта FOREIGN KEY (номер_сорта) REFERENCES wp_сорт (номер_сорта) ON DELETE CASCADE ON UPDATE CASCADE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;`
      Модификация файла wp-includes/class-wp-query.php в функции get_posts ():
      где то 2513 строка найти:

      if ( $split_the_query ) {
          // First get the IDs and then fill in the objects

      и вставить после:

                      $bMod = isset( $q[ "posts_per_page" ] ) && $q[ "posts_per_page" ] > 0 && !isset( $q[ 'search_terms' ] );
                      if ( $bMod ) {
                          $мЗначение = [
                              "join"           => $join,
                              "where"          => $where,
                              "groupby"        => $groupby,
                              "orderby"        => $orderby,
                              "posts_per_page" => $q[ "posts_per_page" ]
                          ];
                          $сЗначение = serialize ( $мЗначение );
                          $сМд5 = md5 ( $сЗначение );
                          $aR = $wpdb->get_results ( "SELECT <code>номер_сорта</code>, <code>записей_сорта</code> FROM <code>wp_сорт</code> 
                          WHERE 
                          <code>мд5_сорта</code>='{$сМд5}'", ARRAY_A );
                          $sTime = date ( "Y-m-d H:i:s", strtotime ( "now" ) + 14400 );
                          if ( !$aR ) {
                              $stable = "wp_сорт";
                              $sColumName = "номер_сорта";
                              // можно бнз этого, но красивее в базе
                              $iN = $wpdb->get_var ( 'SELECT t1.' . $sColumName . '+1
                    FROM ' . $stable . ' AS t1
                    LEFT JOIN ' . $stable . ' AS t2
                    ON t1.' . $sColumName . '+1 = t2.' . $sColumName . '
                    WHERE t2.' . $sColumName . ' IS NULL
                    ORDER BY t1.' . $sColumName . '
                    LIMIT 1' );
                              $wpdb->insert (
                                  "wp_сорт",
                                  [
                                      "номер_сорта"    => $iN,
                                      "значение_сорта" => $сЗначение,
                                      "период_сорта"   => 86400, // Обнова раз в сутки если нет запроса сорта
                                      "мд5_сорта"      => $сМд5,
                                      "вызов_сорта"    => $sTime
                                  ],
                                  [
                                      '%d',
                                      '%s',
                                      '%d',
                                      '%s',
                                      '%s'
                                  ]
                              );
                              $чНомерСорта = $wpdb->insert_id;
                              $iPerPage = $q[ "posts_per_page" ] - 1;
                              $iQ = $wpdb->query (
                                  "SET @iVar = -1;" );
                              $iQ = $wpdb->query (
                                  "SET @iVar2 = 0;" );
                              $sQ = "INSERT INTO <code>wp_сортировка</code>
                              SELECT SQL_CALC_FOUND_ROWS @iVar3:=wp_posts.ID,
                                  IF(@iVar={$iPerPage},@iVar2:=@iVar2+1,IF(ISNULL(@iVar2), @iVar2:=0 , @iVar2)) t,
                                  IF(@iVar<" . $iPerPage . ",@iVar:=@iVar+1,@iVar:=0) t1,
                                  {$чНомерСорта}
                              FROM wp_posts {$join}
                              WHERE 1=1 {$where} {$groupby} {$orderby}
                              ON DUPLICATE KEY UPDATE <code>номер_поста</code>=@iVar3;";
                              $wpdb->query ( $sQ );
                              $q[ "iRows" ] = $iRows = $wpdb->get_var ( "SELECT FOUND_ROWS()" );
                              $wpdb->update ( "wp_сорт", [
                                  "записей_сорта" => $iRows, "время_сорта" => $sTime
                              ],
                                  [ "номер_сорта" => $чНомерСорта ] );
                          } else {
                              $чНомерСорта = $aR[ 0 ][ "номер_сорта" ];
                              $wpdb->update ( "wp_сорт", [ "вызов_сорта" => $sTime ],
                                  [ "номер_сорта" => $чНомерСорта ] );
                              $q[ "iRows" ] = $iRows = $aR [ 0 ][ "записей_сорта" ];
                          }
                          if ( isset ( $q[ "paged" ] ) && $q[ "paged" ] )
                              $iPaged = $q[ "paged" ] - 1;
                          else
                              $iPaged = 0;
                          $this->request = "SELECT $found_rows $distinct {$wpdb->posts}.ID FROM 
                          {$wpdb->posts} $join WHERE 
                      {$wpdb->posts}.ID IN(SELECT <code>номер_поста</code> FROM <code>wp_сортировка</code> WHERE <code>номер_страница</code>={$iPaged} 
                      AND <code>номер_сорта</code>={$чНомерСорта}) GROUP BY {$wpdb->posts}.ID";
                          //echo 0;
                      } else {
                          $this->request = "SELECT $found_rows $distinct {$wpdb->posts}.ID FROM {$wpdb->posts} $join WHERE 
                          1=1 $where $groupby $orderby $limits";
                      }

      Чтобы отдать количество записей, то в функции set_found_posts ( $q, $limits ) изменяем c:
      $this->found_posts = $wpdb->get_var ( apply_filters_ref_array ( 'found_posts_query', [ 'SELECT FOUND_ROWS()', &$this ] ) );
      на:

                  if ( isset( $q[ "iRows" ] ) )
                      $this->found_posts = $q[ "iRows" ];
                  else
                      $this->found_posts = $wpdb->get_var ( apply_filters_ref_array ( 'found_posts_query', [ 'SELECT FOUND_ROWS()', &$this ] ) );

      в cron нужно добавить разово при инсталляции, например, плагина задание:
      wp_schedule_event ( time (), 'wp_wc_updater_cron_interval', 'xray_sorting_event' );
      на событие:
      add_action ( 'xray_sorting_event', 'xray_sorting_event_func' );
      и, соответственно, сама функция:

      /**
       * Функция для cron событий
       */
      function xray_sorting_event_func () {
          global $wpdb;
          set_time_limit ( 600 );
          echo '<pre>xray_sorting';
          $aR = $wpdb->get_results ( "SELECT * FROM <code>wp_сорт</code> WHERE (NOW()>DATE_ADD(<code>время_сорта</code>,INTERVAL <code>период_сорта</code> 
          SECOND) OR <code>время_сорта</code><<code>вызов_сорта</code>) AND <code>номер_сорта</code>>0", ARRAY_A );
          foreach ( $aR as $aV ) {
              $aЗначение = unserialize ( $aV[ "значение_сорта" ] );
              $iPerPage = $aЗначение[ "posts_per_page" ] - 1;
              $iQ = $wpdb->query (
                  "SET @iVar = -1;" );
              $iQ = $wpdb->query (
                  "SET @iVar2 = 0;" );
              $sQ = "INSERT LOW_PRIORITY INTO <code>wp_сортировка</code>
              SELECT SQL_CALC_FOUND_ROWS @iVar3:=wp_posts.ID,
                  IF(@iVar={$iPerPage},@iVar2:=@iVar2+1,IF(ISNULL(@iVar2), @iVar2:=0 , @iVar2)) t,
                  IF(@iVar<" . $iPerPage . ",@iVar:=@iVar+1,@iVar:=0) t1,
                  {$aV["номер_сорта"]}
              FROM wp_posts {$aЗначение["join"]}
              WHERE 1=1 {$aЗначение["where"]} {$aЗначение["groupby"]} {$aЗначение["orderby"]}
              ON DUPLICATE KEY UPDATE <code>номер_поста</code>=@iVar3;";
              $iQ = $wpdb->query ( $sQ );
              if ( !$wpdb->last_error == "" ) {
                  echo "\nсорт {$iQ} " . $aV[ "номер_сорта" ] . ": провал: " . htmlspecialchars ( $sQ ) . " " . $wpdb->last_error
                      . ";";
              } else {
                  echo "\nсорт {$iQ} " . $aV[ "номер_сорта" ] . ": норма;";
              }
              $iRows = $wpdb->get_var ( "SELECT FOUND_ROWS()" );
              echo $wpdb->update ( "wp_сорт", [
                  "записей_сорта" => $iRows, "время_сорта" => date ( "Y-m-d H:i:s", strtotime
                      ( "now" ) + 14400 )
              ],
                  [
                      "номер_сорта" => $aV[ "номер_сорта" ]
                  ] );
          }
          # Стираем старые записи сортировок 604800 сек - это 7 суток
          $wpdb->query ( "DELETE FROM <code>wp_сорт</code> WHERE <code>вызов_сорта</code><" . date ( "Y-m-d H:i:s", strtotime
                  ( "now" ) - 604800 ) . "  AND <code>номер_сорта</code>>0" );
      }

      Так как CRON WP не работает, то крон пользую Linux`а подобной командой, которую запускает каждую минуту:
      /usr/bin/flock -xn /var/lock/cron.php -c 'cd /home/wp/www/;php -q /home/wp/www/wp-cron.php' >/dev/null 2>&1
      flock пользую для исключения повторного запуска, без окончания предыдущего.
      Чтобы крон работал без границы WP, то нужно коментировать в файле wp-cron.php строки:

      //if ( $doing_cron_transient != $doing_wp_cron )
      	//return;

      Ещё раз повторю, что это рабочая модель. Может требует напильника. Но все ошибки, которые могут быть в коде(запятые, пробелы ещё что) это проблемы копи-паста.

    Автор miostat

    (@miostat)

    Подозреваю, что надо кодировку прописать при создании таблицы.

    function doc_order_install () {
      require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
      global $wpdb;
      
      $table_name = $wpdb->prefix . 'table_doc_order';
    if($wpdb->get_var("show tables like '$table_name'") != $table_name) { 
     $sql = "CREATE TABLE " . $table_name . " (
              id mediumint(9) NOT NULL AUTO_INCREMENT,
    	  data date NOT NULL,
              name tinytext NOT NULL,
    	  second_name tinytext NOT NULL,
    	  middle_name tinytext NOT NULL,
              dob date NOT NULL,
              doc tinytext NOT NULL,
              quantity mediumint(3) NOT NULL,
              grupp tinytext NOT NULL,
    	  UNIQUE KEY id (id)
    	);";
    
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);
     };
    Автор miostat

    (@miostat)

    Оказалось был пропущен пробел после FROM:
    $sql= 'SELECT * FROM'

    Теперь foreach работает.
    Но я всё же не смог разобраться, почему сама таблица не создаётся:

    function doc_order_install() {
      require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
      global $wpdb;
      $table_name = $wpdb->prefix . 'table_doc_order';
      // Генерация таблицы с данными для справок
      
     $sql = 'CREATE TABLE ' . $table_name . ' (
      id mediumint(9) NOT NULL AUTO_INCREMENT,
      data DATE NOT NULL,
      name TEXT NOT NULL,
      second_name TEXT NOT NULL,
      middle_name TEXT NOT NULL,
      dob DATE NOT NULL,      
      doc TEXT NOT NULL,
      quantity TINYINT(2) NOT NULL,
      group TEXT NOT NULL,
      UNIQUE KEY id (id)
     );';
     
     dbDelta($sql);
     };
    Автор miostat

    (@miostat)

    Проблема, возможно не в foreach
    Я проверил базу данных, но таблицы плагина там не оказалось =/
    Функция плагина прикреплённая к хуку активации не создаёт таблицу в базе данных:

    add_option("doc_order_version", "1.0"); // версия плагина
    register_activation_hook(__FILE__, 'doc_order_install');
    register_deactivation_hook(__FILE__, 'doc_order_uninstall');
     
    function doc_order_install() {
      global $wpdb;
      $table_name = $wpdb->prefix . 'table_doc_order';
      // Генерация таблицы с данными для справок
      if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
    $sql = "CREATE TABLE " . $table_name . " (
     id mediumint(9) NOT NULL AUTO_INCREMENT,
     data DATE NOT NULL,
     name TINYTEXT NOT NULL,
     second_name TINYTEXT NOT NULL,
     middle_name TINYTEXT NOT NULL,
     dob DATE NOT NULL,    
     doc TINYTEXT NOT NULL,
     quantity TINYINT(2) NOT NULL,
     group TINYTEXT NOT NULL,
     UNIQUE KEY id (id)
    );";
      require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
      dbDelta($sql);
    };
    };
    //Удаление данных плагина
    function doc_order_uninstall () {
        global $wpdb, $table_doc_order;
        delete_option('doc_order_version');
        $sql = "DROP TABLE $table_doc_order";
        $wpdb->query($sql);
    };

    Теперь надо смотреть что здесь не так)

    …вот вроде бы получилось, но выдает такое:
    Ошибка базы данных WordPress: [Table ‘reya_db.wp_users’ doesn’t exist]
    CREATE TABLE wp_users ( ID bigint(20) unsigned NOT NULL auto_increment, user_login varchar(60) NOT NULL default », user_pass varchar(255) NOT NULL default », user_nicename varchar(50) NOT NULL default », user_email varchar(100) NOT NULL default », user_url varchar(100) NOT NULL default », user_registered datetime NOT NULL default ‘0000-00-00 00:00:00’, user_activation_key varchar(255) NOT NULL default », user_status int(11) NOT NULL default ‘0’, display_name varchar(250) NOT NULL default », PRIMARY KEY (ID), KEY user_login_key (user_login), KEY user_nicename (user_nicename), KEY user_email (user_email) ) DEFAULT CHARACTER SET utf8

    Не создалась база в ПХПМА, как с первым сайтом. Устанавливал по этой ссылке href=»http://needsite.net/ustanovka-wordpress-na-lokalnyj-server-denwer/

    • Ответ изменён 7 лет, 1 месяц назад пользователем orthodox84.

    Ах вон оно что.
    У меня после загрузки базы данных с локального компа на сервер — возникли кое какие проблемы, несколько строк кода упорно выдавали ошибку, вот к примеру:

    
    Ошибка SQL запрос:
    
    ALTER TABLE wp_commentmeta
      MODIFY meta_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=157
    
    Ответ MySQL: #1075 - Некорректное определение таблицы: может существовать только один автоинкрементный столбец, и он должен быть определен как ключ
    

    или:

    ALTER TABLE "wp_links"
      ADD PRIMARY KEY ("link_id"),
      ADD KEY "link_visible" ("link_visible")
    
    Ответ MySQL: #1068 - Указано несколько первичных ключей

    я эти sql-инструкции собрал в отдельный файл и сохранил. Тоесть основная база то залилась. Но теперь я понимаю, что где то вот тут вот в этих вот записях и кроется основная трабла…

    • Ответ изменён 7 лет, 5 месяцев назад пользователем adward.
    • Всем привет!
      Трудность такая, В базу данные добавляются нормально,
      а вот если сохранить изменения или удалить, то выдает «Вы уверены, что хотите это сделать? Пожалуйста, попробуйте ещё раз.«, если убрать проверки то страница обновляется и ни чего не обновляется и не удаляется.
      Что я не так написал?
      Тестирую на денвере.

      //Добавление ссылки
      	echo "<h3>Добавить ссылку</h3>";
      	col_add_link();
      
      	//Изменение информации о ссылке
      	echo "<h3>Список ссылок</h3>";
      	col_change_link();
      }
      
      	function col_change_shop(){}
      
      //Добавление ссылки
      function col_add_link()
      {
      	global $wpdb;
      	$table_links = $wpdb->prefix.col_links;
      
      	//Сохранение добавленного ссылки в базу
      	if ( isset($_POST['col_add_link_btn']) )
          {
             if (function_exists('current_user_can') &&
                  !current_user_can('manage_options') )
                      die ( _e('Hacker?', 'col') );
      
              if (function_exists ('check_admin_referer') )
              {
                  check_admin_referer('col_add_link_form');
              }
      
      		$col_link_name     = strip_tags(trim($_POST['col_link_name']));
                      $col_link_desk     = strip_tags(trim($_POST['col_link_desk']));
      		$col_link_url 	   = strip_tags(trim($_POST['col_link_url']));
      		$col_link_lokation = strip_tags(trim($_POST['col_link_lokation']));
      		$col_link_size     = strip_tags(trim($_POST['col_link_size']));
      		$col_link_date     = $_POST['col_link_date'];
      
      		$wpdb->insert
      					(
      						$table_links,
      						array(  'name'      => $col_link_name,
      						        'url'       => $col_link_url,
      								'desk'      => $col_link_desk,
      								'lokation'  => $col_link_lokation,
      								'size'      => $col_link_size,
      								'date'      => $col_link_date
      								),
      						array( '%s', '%s', '%s', '%s', '%s', '%s')
      					);
          }
      
      	//Форма добавления ссылки
      	echo
      		"
      			<form name='col_add_link' method='post' action='".$_SERVER['PHP_SELF']."?page=SitLin2&updated=true'>
      		";
      
      		if (function_exists ('wp_nonce_field') )
      		{
      			wp_nonce_field('col_add_link_form');
      		}
      
      	echo
      	"
      			<table>
      				<tr>
      					<td style='text-align:right;'>Имя ссылки:</td>
      					<td><input type='text' name='col_link_name' style='width:300px;'/></td>
      					<td><i>Введите имя ссылки</i></td>
      				</tr>
      				<tr>
      					<td style='text-align:right;'>Описание ссылки:</td>
      					<td>
      						<input type='text' name='col_link_desk' style='width:300px;'/>
      					</td>
      					<td></td>
      				</tr>
      				<tr>
      					<td></td>
      					<td style='padding-left:5px; font-size:10px; color:#666666'>
      						<i>Пример описания: (<b >Игры, Софт, Фильмы,... ).</i>
      					</td>
      					<td></td>
      				</tr>
      				<tr>
      					<td style='text-align:right;'>url ссылки:</td>
      					<td>
      					<input type='text' name='col_link_url' style='width:300px;'/>
      					</td>
      					<td><i>Введите url ссылки.</i></td>
      				</tr>
      				<tr>
      					<td style='text-align:right;'>Местоположение сервера:</td>
      					<td>
      						<input type='text' name='col_link_lokation' style='width:150px;'/>
      					</td>
      					<td><i>Укажите местоположени сервера (Страна или город)</i></td>
      				</tr>
      				<tr>
      					<td style='text-align:right;'>Размер сервера:</td>
      					<td>
      						<input type='text' name='col_link_size' style='width:150px;'/>
      					</td>
      					<td><i>Укажите размер сервера</i></td>
      				</tr>
      				<tr>
      					<td> </td>
      					<td><input type='hidden' name='col_link_date' value='<?php echo date(Y.m.d)?>' style='width:150px;'/></td>
      					<td> </td>
      				</tr>
      				<tr>
      					<td><input type='submit' name='col_add_link_btn' value='Добавить' style='width:140px; height:25px'/></td>
      					<td></td>
      				</tr>
      			</table>
      		</form>
      	";
      }
      
      //Изменение информации о ссылке
      function col_change_link()
      {
      	global $wpdb;
      	$table_links = $wpdb->prefix.col_links;
      
      	if ( isset($_POST['col_links_setup_btn']) )
          {
             if (function_exists('current_user_can') &&
                  !current_user_can('manage_options') )
                      die ( _e('Hacker?', 'col') );
      
              if (function_exists ('check_admin_referer') )
              {
                  check_admin_referer('col_add_link_form');
              }
      
      		$col_link_name     = strip_tags(trim($_POST['col_link_name']));
                      $col_link_desk     = strip_tags(trim($_POST['col_link_desk']));
      		$col_link_id 	   = $_POST['col_link_id'];
      		$col_link_url 	   = strip_tags(trim($_POST['col_link_url']));
      		$col_link_lokation = strip_tags(trim($_POST['col_link_lokation']));
      		$col_link_size     = strip_tags(trim($_POST['col_link_size']));
      		$col_link_date     = $_POST['col_link_date'];
      
      		$wpdb->update
      					(
      						$table_links,
      						array(  'name'      => $col_link_name,
      						        'url'       => $col_link_url,
      								'desk'      => $col_link_desk,
      								'lokation'  => $col_link_lokation,
      								'size'      => $col_link_size,
      								'date'      => $col_link_date
      								),
      						array( 'id' => $col_link_id),
      						array( '%s', '%s', '%s', '%s', '%s', '%s'),
      						array( '%d')
      					);
          }
      
      	if ( isset($_POST['col_links_delete_btn']) )
          {
              if (function_exists('current_user_can') &&
                 !current_user_can('manage_options') )
                      die ( _e('Hacker?', 'col') );
      
              if (function_exists ('check_admin_referer') )
              {
                  check_admin_referer('col_add_link_form');
              }
      
      		$col_link_id = $_POST['col_link_id'];
      
      		$wpdb->query("DELETE FROM $table_links WHERE id = $col_link_id");
      	}
      
      	//Вывод формы информации по ссылкам
      	$links = $wpdb->get_results("SELECT * FROM $table_links");
      	foreach ($links as $item)
      	{
      		echo
      		"
      			<form name='col_links_setup' method='post' action='".$_SERVER['PHP_SELF']."?page=SitLin2&updated=true'>
      		";
      
      		if (function_exists ('wp_nonce_field') )
      		{
      			wp_nonce_field('col_links_setup_form');
      		}
      
      		echo
      		"
      				<p style='padding-top:30px;'><b>Товар ID = ".$item->id."</b></p>
      				<table>
      					<tr>
      						<td style='text-align:right;'>Имя ссылки:</td>
      						<td><input type='text' name='col_link_name' value='".$item->name."' style='width:300px;'/></td>
      						<td> </td>
      					</tr>
      					<tr>
      						<td style='text-align:right;'>Описание ссылки:</td>
      						<td>
      							<input type='text' name='col_link_desk' value='".$item->desk."' style='width:300px;/>
      							<input type='hidden' name='col_link_id' value='".$item->id."'/>
      						</td>
      						<td style='color: #666666;'><i>Описание ссыкли, пример: (<b>Игры, Софт, Фильмы,...)</i></td>
      					</tr>
      					<tr>
      						<td style='text-align:right;'>URL ссылки:</td>
      						<td>
      							<input type='text' name='col_link_url' value='".$item->url."' style='width:300px;'/>
      						</td>
      						<td style='color:#666666;'><i>Адрес ссылки.</i></td>
      					</tr>
      					<tr>
      						<td>Местоположение сервера:</td>
      						<td><input type='text' name='col_link_lokation' value='".$item->lokation."' style='width:150px;'/></td>
      						<td> </td>
      					</tr>
      					<tr>
      						<td style='text-align:right;'>Размер сервера:</td>
      						<td>
      							<input type='text' name='col_link_size' value='".$item->size."' style='width:100px;'/>
      						</td>
      						<td style='color:#666666;'><i>Рамер сервера</i></td>
      					</tr>
      					<tr>
      						<td style='text-align:right;'>Дата добавлени:</td>
      						<td>
      							<input type='text' name='col_link_date' value='".$item->date."' style='width:100px;'/>
      						</td>
      						<td style='color:#666666;'><i></i></td>
      					</tr>
      					<tr>
      						<td> </td>
      						<td>
      							<input type='submit' name='col_links_setup_btn' value='Сохранить' style='width:140px; height:25px'/>
      							<input type='submit' name='col_links_delete_btn' value='Удалить' style='width:140px; height:25px'/>
      						</td>
      					</tr>
      				</table>
      			</form>
      		";
      	}
      }
      
      function col_install()
      {
          global $wpdb;
      
      	$table_links = $wpdb->prefix.col_links;
      
      	$sql1 = "CREATE TABLE IF NOT EXISTS <code>".$table_links."</code> (
      		    'id' int(10) NOT NULL AUTO_INCREMENT,
      		    'name' varchar(250) NOT NULL,
      		    'url' varchar(250) NOT NULL,
      		    'desk' varchar(250) NOT NULL,
      		    'lokation' varchar(250) NOT NULL,
      		    'size' varchar(250) NOT NULL,
      		    'date' DATE NOT NULL,
      		     PRIMARY KEY (<code>id</code>)
      		) ENGINE=InnoDB DEFAULT CHARSET=utf8;
      	";
      
          $wpdb->query($sql1);
      }
      
      function col_uninstall()
      {
          global $wpdb;
      	$table_links = $wpdb->prefix.col_links;
          $sql1 = "DROP TABLE \'".$table_links."\';";
          $wpdb->query($sql1);
      }
      
      register_activation_hook( __FILE__, 'col_install');
      register_deactivation_hook( __FILE__, 'col_uninstall');
      
      add_action('admin_menu', 'col_add_admin_pages');
    Модератор Yui

    (@fierevere)

    永子

    как вариант можете создать пустую таблицу
    запросом SQL, например через phpMyAdmin

    CREATE TABLE IF NOT EXISTS wp_termmeta (
    meta_id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    term_id bigint(20) unsigned NOT NULL DEFAULT ‘0’,
    meta_key varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
    meta_value longtext COLLATE utf8mb4_unicode_ci,
    PRIMARY KEY (meta_id),
    KEY term_id (term_id),
    KEY meta_key (meta_key(191))
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=1 ;

    вот такую ошибку выдаёт если заново начать вводить логин после сброса:
    скриншот : https://yadi.sk/i/mmePmDjjkscKd

    «
    Ошибка базы данных WordPress: [User ‘slynet’ has exceeded the ‘max_questions’ resource (current value: 20000)]
    CREATE TABLE wp_7users ( ID bigint(20) unsigned NOT NULL auto_increment, user_login varchar(60) NOT NULL default », user_pass varchar(64) NOT NULL default », user_nicename varchar(50) NOT NULL default », user_email varchar(100) NOT NULL default », user_url varchar(100) NOT NULL default », user_registered datetime NOT NULL default ‘0000-00-00 00:00:00’, user_activation_key varchar(60) NOT NULL default », user_status int(11) NOT NULL default ‘0’, display_name varchar(250) NOT NULL default », PRIMARY KEY (ID), KEY user_login_key (user_login), KEY user_nicename (user_nicename) ) DEFAULT CHARACTER SET utf8

    Ошибка базы данных WordPress: [User ‘slynet’ has exceeded the ‘max_questions’ resource (current value: 20000)]
    CREATE TABLE wp_7usermeta ( umeta_id bigint(20) unsigned NOT NULL auto_increment, user_id bigint(20) unsigned NOT NULL default ‘0’, meta_key varchar(255) default NULL, meta_value longtext, PRIMARY KEY (umeta_id), KEY user_id (user_id), KEY meta_key (meta_key(191)) ) DEFAULT CHARACTER SET utf8

    Ошибка базы данных WordPress: [User ‘slynet’ has exceeded the ‘max_questions’ resource (current value: 20000)]
    CREATE TABLE wp_7terms ( term_id bigint(20) unsigned NOT NULL auto_increment, name varchar(200) NOT NULL default », slug varchar(200) NOT NULL default », term_group bigint(10) NOT NULL default 0, PRIMARY KEY (term_id), KEY slug (slug(191)), KEY name (name(191)) ) DEFAULT CHARACTER SET utf8

    Ошибка базы данных WordPress: [User ‘slynet’ has exceeded the ‘max_questions’ resource (current value: 20000)]
    CREATE TABLE wp_7term_taxonomy ( term_taxonomy_id bigint(20) unsigned NOT NULL auto_increment, term_id bigint(20) unsigned NOT NULL default 0, taxonomy varchar(32) NOT NULL default », description longtext NOT NULL, parent bigint(20) unsigned NOT NULL default 0, count bigint(20) NOT NULL default 0, PRIMARY KEY (term_taxonomy_id), UNIQUE KEY term_id_taxonomy (term_id,taxonomy), KEY taxonomy (taxonomy) ) DEFAULT CHARACTER SET utf8
    …. ит.д. »

    Table: wp_usermeta
    Field Type Null Key Default Extra
    umeta_id bigint(20) unsigned PRI auto_increment
    user_id bigint(20) unsigned 0
    meta_key varchar(255) Yes IND NULL
    meta_value longtext Yes IND NULL

    так должно быть у меня не получается поставить auto_increment пишет
    Ошибка запроса:
    #1075 — Incorrect table definition; there can be only one auto column and it must be defined as a key
    и потом
    #1062 — Duplicate entry ‘0’ for key ‘PRIMARY’

    Если у поля снести атрибут AUTO_INCREMENT, то INSERT вставит запись с id = 0

    Насколько я понял — речь-то сознании юзера из админки. Суррогатный же ключ должен быть. Или в юзерах не так? (в функции не заглядывал вообще. В бд — давно 😉 )

    Модератор Yuri

    (@yube)

    Это что-то из области фантастики.

    Отнюдь. Если у поля снести атрибут AUTO_INCREMENT, то INSERT вставит запись с id = 0. Разумеется, один раз. Второй раз выругается на duplicate entry. Я такое видел живьем.

    Если у тебя 0 записей, 0 страниц, 0 медиафайлов и 0 меню сохранено (меню хранятся там же где и посты), то можно в БД изменить auto_increment с 94 (или сколько там стоит) на 1.

    не логичнее, лишняя путаница. id это же не вордпрессовкое изобретение — это AUTO_INCREMENT значение в базе данных mysql.

Просмотр 15 результатов — с 61 по 75 (из 107)