Робота з базами даних в php

Якщо раніше (до php 5.0) можна було використовувати більш-менш тривіальний спосіб роботи з базами даних в php (через модуль MySQL), то з новими версіями php доводиться переходити до нових модулів, таким як mysqli або pdo. Модуль MySQL deprecated в php 5.5.x і незабаром буде повністю виключений.

У цій замітці нагадаємо, як використовувати модуль MySQL. але використовувати сучасні інтерфейси для роботи (див. наступні замітки). Для мінімального використання модуля MySQL обов'язково потрібно пам'ятати всього лише кілька функцій (природно, їх набагато більше, тут представлений лише необхідний мінімум).

  • resource mysql_connect ([string $ server = ini_get ( "mysql.default_host") [, string $ username = ini_get ( "mysql.default_user") [, string $ password = ini_get ( "mysql.default_password") [, bool $ new_link = false [, int $ client_flags = 0]]]]])

Встановлює з'єднання з БД. наприклад:

  • bool mysql_select_db (string $ database_name [, resource $ link_identifier = NULL])

Вибирає БД для роботи. наприклад,

  • resource mysql_query (string $ query [, resource $ link_identifier = NULL])

Надсилає запит на виконання. наприклад:

  • array mysql_fetch_array (resource $ result [, int $ result_type = MYSQL_BOTH])
Обробляє ряд результату запиту у вигляді асоціативного, чисельного або асоціатівно-чисельного масиву, зрушує внутрішній покажчик даних вперед. Наприклад: В принципі, це і є необхідний мінімум - в разі існуючої БД, цих запитів цілком достатньо для маніпулювання даними.

Залишилася тільки одна проблема - захист від SQL-ін'єкцій. У даних, отриманих від користувача, можуть бути службові символи, які використовуються в запитах, і які можуть привести до помилок або навіть втрати даних (у разі навмисної атаки). Тому варто екранувати отримані дані за допомогою функції

  • string mysql_real_escape_string (string $ unescaped_string [, resource $ link_identifier = NULL])

В результаті лапки будуть заекраніровани:

Отже, наш приклад тепер виглядає наступним чином:

Схожі статті