Створення бази - завдання просте, але відповідальна. Необхідно враховувати безліч чинників. Помітний прогрес в апаратно-програмному забезпеченні інформаційних технологій не дає підстав нехтувати ймовірністю технічної несправності, несанкціонованого доступу, порушення структури таблиць, додавання неправильних даних.
Комп'ютер - не людина, і будь-який, навіть самий «розумний», алгоритм і раніше далекий від ідей природного інтелекту: без допомоги програміста він мало на що здатний. Однак, на відміну від людини, програма може стабільно і коректно виконувати свою місію, головне - правильно її написати.
Концепція MySQL: insert into
Зовні громіздкі форми синтаксису SQL дуже прості у використанні. Практика написання запитів літерами у верхньому регістрі ще зберігається, але поступово заміщується більш лаконічним використанням обох регістрів. У зв'язку з цим важливо не забувати: одного разу згадане ім'я поля в одному регістрі в тому ж запиті, якщо використовується знову, зобов'язаний бути в тому ж варіанті написання.
Характерна риса операції MySQL insert into, як і багато чого, що пов'язано з інтернет-програмуванням: «не буде виконане те, що не зрозуміло». Неправильно складений запит на поповнення бази даних буде просто проігноровано, і далеко не завжди це можна помітити відразу. Факт додавання запису необхідно контролювати, як і доступ до бази даних в цілому. Кожне поле повинно бути заповнено значенням відповідного типу. При цьому не завжди обов'язково вказувати поля таблиці-результату. Не завжди потрібно передавати конкретні значення: конструкція MySQL insert into select дозволяє отримати набір доданих записів іншої таблиці або запиту.
Запит повинен бути синтаксично і логічно коректним. Застосування будь-якого варіанту конструкції MySQL query insert into values повинно враховувати кодування скрипта, в якій знаходиться, кодування таблиці бази даних і, власне, доданої інформації.
Класичне додавання запису
Будь-яка таблиця MySQL - послідовність записів, кожна з яких має певну кількість полів. Додати записи в іншій таблиці. Достатньо в запиті вказати в select що і звідки, а в into - куди. Символ "*" каже, що запит звертається до всіх полів кожного запису.
У результаті звернення до цієї функції вміст таблиці $cSrcTable повністю запишеться в таблицю $cDstTable, з якої попередньо будуть видалені всі записи.
Додавання запису
Конструкція MySQL insert into values дозволяє додавати записи по одній, вказуючи конкретні поля і відповідні їм конкретні значення.
Цей запит може бути розбитий на три запити, в кожному з яких одному списку полів (`code_back`, `owner_code`, ) буде відповідати один рядок даних ('~', '{$cSChip}', '{$SChip_s}', ), ('~', '{$cPetr}', '{$cPetr_s}', ) або ('~', '{$cTest}', '{$cTest_s}', ), але так простіше. Наприклад, в даному випадку додано базовий набір користувачів: адміністратор, диспетчер і тестувальник.
Додавання записів через власний інтерфейс
Принцип роботи з MySQL реалізований через форму запиту. Це зручно в режимі командного рядка і в тому ж вигляді реалізовано в різних мовах програмування. На мові PHP, зокрема, використовується рядок запиту - звичайна послідовність символів, вміст якої заповнюється в процесі роботи алгоритму. Потім текст сформованого запиту надходить в функцію mysqli_query() і виконується.
Яку форму роботи з базою даних вибрати - вирішувати в конкретному випадку розробнику, але у всіх випадках найзручніше представити завдання в частині операцій читання/запису інформації з/в базу даних у вигляді власного інтерфесу. Ця ідея може бути реалізована у вигляді набору функцій або окремого об'єкта.
У такому варіанті безпосередньо операції додавання записів будуть приховані, а процес буде полягати в послідовному виклик власних фунції. Наприклад, scfAddUser('Ivanov', 'Ivan') призведе до запиту MySQL insert into `all_users` ('last_name', 'first_name', 'status') values ('Ivanov', 'Ivan', 'new'). Такий варіант істотно заощаджує код і робить його значно більш читабельним і осмисленим. Істотна відмінність власного інтерфейсу від безпосереднього використання операцій з базою даних в їх первозданному вигляді полягає в тому, що винесені в окремий файл всі операції додавання, редагування та видалення записів можуть бути контрольовані і змінювані без модифікації використовує їх коду. Це більш безпечно і ефективно.
Власний інтерфейс від об'єкта даних
Якщо не брати в розрахунок прості змінні, то сучасна програма являє собою сукупність об'єктів. Чим кваліфікованіший вирішена задача, тим ефективніше спроектована система об'єктів та їх взаємодію один з одним. Очевидно, операції запису і читання даних приймають інший контекст: об'єкт може зберегти себе в базі даних, може відновити себе з бази даних, перевірити свій стан, передати вміст іншому об'єкту і т. д. Такий підхід переносить центр ваги з безпосереднього кодування запитів MySQL insert into в інтерфейс: scfAddObject('contens', ), який використовується кожним об'єктом по-своєму. Об'єкт дати буде мати метод myDate->Save() і виконає звернення scfAddObject('04122016'), а об'єкт користувача currUser->Save() зробить scfAddObject('Ivanov - login'), при цьому кожен виклик scfAddObject() буде призводити до конструювання свого варіанту запиту MySQL insert into.