> Добрий день, шановні читачі блогу nigurenko. На цей раз ми з вами поговоримо про те, як вирішити виниклі проблеми пов'язані з MYSQL запитами до бази даних DLE движка. Багатьом напевно знайома ситуація зображена на скріншоті вище. Наведена помилка як правило не відразу з'являється в DLE движку, а згодом експлуатації даної системи управління сайтом. Якщо ви дану проблему спостерігаєте відразу після установки DLE движка, то можна припустити, що ви встановили не зовсім коректну версію DLE движка. Якщо дана проблема з MySQL виникла вже в ході експлуатації DLE, то скоріш за все помилка в такому випадку трохи іншого плану. Як її виправити, ми з вами якраз і поговоримо в цій статті.
Помилки виникають в MySQL запитах движка DLE найчастіше з кількох причин. Перша причина може полягати в тому, що MySQL отримує невірні SQL запити. Так само подібна проблема в більшості випадків виникає в некоректному редагуванні безпосередньо самого коду движка DLE (ця проблема може виникнути через установки будь-якого модуля, хака). Другою причиною може стати безпосередньо сама база даних, в якій з тих чи інших причин відсутні рядки в базі даних, і в той момент коли відбувається запит до даних яких не існує, вискакує MySQL помилка, яку можна побачити на скріншоті. Про рішення подібних проблем ми з вами і поговоримо в даній статті.
Вище описаний спосіб може виправити ряд проблем, якщо MySQL помилка з'являється через кривого коду в php файлі, який робить запит до DLE движку. Також бувають такі ситуації, що під час оновлення движка DLE, до актуальної версії, можуть виникнути ряд проблем в с MySql базою. Тут виресовивается друга проблема, яка може полягати в тому, що в нових версіях скрипта DLE, розробники додають в CMS новий функціонал, а відповідно для них в базі даних є нові записи, іншими словами колонки в таблицях. Якщо ви спробуєте встановити нову версію DLE, при цьому залишите стару MySQL базу, то в кінцевому підсумку у вас будуть в майбутньому виникати проблеми із запитами до MySql базі, тобто у вас будуть сипатися помилки. Така ситуація виникає через те, що DLE скрипт робить запит до БД, але в старій версії бази даних немає даних такої таблиці, відповідно сервер автоматом повертає вам MySQL помилку.
Щоб вирішити проблему, що склалася, Вам потрібно буде в ручну за допомогою phpmyadmin створити відсутні рядки в БД. Для початку варто зробити бекап MySql бази на всякий випадок. Це потрібно для того, щоб можна було відкотитися назад якщо ви зробите щось не так.
Щоб зрозуміти, що ж потрібно додати в базу даних, і саме важливо куди додати, варто уважно прочитати помилку MySql. Така рядок як "Unknown column 'allow_vote' in 'field list'" говорить про те, що з такою назвою колонки 'allow_vote' просто не існує.
Щоб дізнатися до якої таблиці має відношення даний запит, потрібно подивитися з помилки запиту. Припустимо рядок "UPDATE dle_usergroups SET." Говорить про те, що запит здійснюється в таблицю "dle_usergroups", де "dle_" - це той префікс, який Ви написали при установці dle скрипта (якщо при установці Ви префікс Dle не чіпали, то за замовчуванням він буде "dle_").
З усього вище написаного, можна зробити висновок, що варто додати в таблицю "dle_usergroups" (де "dle_" - це префікс) одну додаткову колонку з ім'ям (в поле "Field") "allow_vote", із зазначенням деяких значень для полів таблиці. У даній ситуації, нам потрібно додати колонку, де буде знаходитися інформація для всіх груп користувачів. Оскільки єдиним значенням, яке буде зберігатися в даному полі буде перемикач чекбокса (дозволити / скасувати), ми з вами просто скопіюємо схожі значення полів для створеної колонки з уже наявних записів в базі даних, але в поле "Field" введемо назву відсутнього поля "allow_vote ".
кращий сайт де можна скачати шаблони для dle 12.0 безкоштовно