Робота з базами даних в PHP
1.1. Булева алгебра Теоретичною базою при проектуванні сучасних цифрових пристроїв, призначених для цілей числових обчислень, вирішення логічних завдань і завдань управління, є булева алгебра, двійкова арифметика і теорія скінченних автоматів. Логіка - це наука про закони і форми мислення, математична ж логіка займається застосуванням формальних математичних методів для вирішення логічних завдань. Базовим поняттям булевої алгебри [2] є поняття висловлювання, під яким розуміється будь-яке твердження, що розглядається тільки з точки зору його істинності чи хибності. У булевої алгебри не існує істинно-хибних або хибно-істинних висловлювань. Вислів можна розглядати як логічну змінну, яка може приймати різні значення, наприклад, вислів "сьогодні понеділок" буде істинним в понеділок і хибним у всі інші дні тижня. Обчислення висловлювань якраз і грунтується на тому, що їх можна розглядати як двійкові змінні, які можуть приймати одне з двох своїх значень. Прикладами двійкових логічних змінних є розряди чисел, представлених у двійковій системі числення; замкнутий або розімкнутий контакт; наявність або відсутність струму в ланцюзі; високий чи низький потенціал в якій-небудь точці схеми і т.п.
Для прикладу роботи PHP з базами даних будемо використовувати LAMP-сервер (Linux Apache MySQL PHP).
Зпочатку з'єднаємось з сервером бази даних за допомогою функції mysql_connect();
Для цього треба вказати:
1. Адресу сервера бази даних - $hostname = "localhost" (127.0.0.1) для локального сервера;
2. Ім'я користувача, зареєстрованого на сервері БД;
3. Пароль цього користувача.
Функція
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 ]]]]] )
повертає ідентифікатор з'єднання або FALSE.
Наприклад:
<?php //означимо змінні з даними для авторизації $username = "your_name"; $password = "your_password"; $hostname = "localhost"; //підключимось до серверу БД $dbhandle = mysql_connect($hostname, $username, $password) or die("Неможливо підключитись до MySQL"); echo "Підключення до MySQL пройшло успішно"; ?>
Потім треба вибрати базу даних, з якою будемо працювати. Для цього використаємо функцію
bool mysql_select_db ( string $database_name [, resource $link_identifier ] )
Наприклад:
<?php //виберемо базу даних з якою будемо працювати $selected = mysql_select_db("examples",$dbhandle) or die("Неможливо вибрати базу examples"); ?>
,де examples - ім'я бази даних.
Наступним кроком буде безпосередньо робота з даними засобами SQL-запитів. Для цього в PHP використовують функцію
resource mysql_query ( string $query [, resource $link_identifier ] )
, обов'язковим параметром якої є рядок, що містить SQL-запит.
Наприклад:
<?php //виконуємо SQL запит і приймаємо дані $result = mysql_query("SELECT 'id', 'model', 'year' FROM 'cars'"); //опрацьовуємо вибрані дані while ($row = mysql_fetch_array($result)) { echo "ID:".$row['id']." Name:".$row['model']."Рік".$row['year']; } ?>
В прикладі використана функція mysql_fetch_array(); - вона повертає рядок із $result (що є частиною "таблиці" БД), і переміщає внутрішній покажчик вперед на 1(що зручно для обробки даних в циклі).
Після роботи з базою даних, треба закрити з'єднання за допомогою функції
bool mysql_close ([ resource $link_identifier ] )
Якщо ідентифікатор не вказаний, то закривається останнє відкрите з'єднання.
Наприклад:
<?php //закрити з'єднання mysql_close($dbhandle); або просто mysql_close(); ?>
Ми розглянули випадок, коли база даних вже існує, і ми лише спробували маніпулювати даними з її таблиці. Насправді ж засобами PHP можна виконувати багато різноманітних задач при роботі з базами даних. Для цього PHP пропонує великий вибір функцій, з якими можна ознайомитись тут