Якщо раніше (до 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])
В результаті лапки будуть заекраніровани:
Отже, наш приклад тепер виглядає наступним чином: