Програмування на php в прикладах

Крок 10. Заглянемо в базу. перший скрипт

Два зауваження на початку:

  1. У попередньому кроці я допустив прикру помилку. Для установки MySQL як служби під Windows NT крім створення my.ini файлу winmysqladmin-му треба, звичайно ж, виконати саму установку сервера як служби ось так:

Отже, база (і перша таблиця в ній) створені.

Напишемо скрипт, який буде формувати html-сторінку з вмістом таблиці. Але спочатку таблицю треба заповнити вмістом. Так як форма введення у нас ще не створена, то скористаємося методом з попереднього кроку - створимо sql-запит на додавання запису в таблицю і направимо його (файл із запитом) на вхід mysql.exe.

Ось цей скрипт:

Кілька зауважень по цьому запиту. По-перше, я не сказав "commit". В даному випадку це не обов'язково, тому що commit відбудеться по закінченню скрипта автоматично. По-друге, в якості значення для ключового поля id вибрано значення null, що змушує mysql привласнити (в силу параметра для поля auto_increment) числове значення, на одиницю більше, ніж максимальне з існуючих значень для цього поля в таблиці. По-третє, деякі поля ми "занулити" - потім заповнимо. І по-четверте, цей запит до sql-сервера відрізняється від стандарту! Справа в тому, що (як я вже говорив) mysql має деякі відмінності від sql-стандарту. Зокрема, insert допускає таку скорочену форму запису. За правилами я б мав би замість одного insert-а з перерахованими через кому групами значень в values ​​використовувати два запити. Але ми полегшили собі життя. Взагалі-то це, на мій погляд, не найкраща практика - використовувати всякі "відхилення від норми". Принаймні страждає переносимість. Але нас зараз ця тема навряд чи повинна хвилювати.

Для PHP4 (його ini-файл кличуть php.ini) нічого робити не треба, тому що підтримка mysql в 4-й версії вбудована.

І ще зауваження: PHP3 і PHP4 можна використовувати на одному комп'ютері разом. У мене в apache файли з розширенням php3 обробляє 3-тя версія, а php4 і phtml - 4-я.

Ось фрагмент з httpd.conf:


Options ExecCGI

ScriptAlias ​​"/ __ php4_dir __ /" "C: / usr / local / php4 /"
Action application / x-httpd-php4 "/__php4_dir__/php.exe"

Options ExecCGI

ScriptAlias ​​"/ __ php3_dir __ /" "C: / usr / local / php3 /"
Action application / x-httpd-php3 "/__php3_dir__/php.exe"

А ось фрагмент файлу mime.types:

application / x-httpd-php3 phtml php3
application / x-httpd-php4 php4

А тепер обіцяний скрипт:

По-перше, навіть у такій спрощеній формі код роботи з mysql надмірний. Оскільки ми працює з однією базою, та ще й робимо єдиний запит, то замість mysql_connect (), mysql_select_db () і mysql_query () досить було викликати mysql_db_query (). Ця функція при необхідності виконає коннекціі (в іншому, в цьому вона не самотня), вибере базу даних і виконає запит до бази.

По-друге, mysql_close () теж необов'язкова, тому що з'єднання з сервером буде автоматично закрито при закінченні скрипта.

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

По-четверте, функції implode () і explode () відносяться до стрінговим. Цій темі буде присвячено окремий крок (кроки). А поки: explode () створює масив з фрагментів рядка, розбираючи її як рядок з роздільником, зазначеному в першому параметрі. Implode () робить зворотну операцію. Цю пару я застосував для зручності - по-моєму це простіше, ніж набирати рядок у вигляді ". Тексттекст. "І вже тим більше простіше, ніж робити купу echo з текстами, обрамленими тегами /.

І по-п'яте, це чудо програмістської думки;) виконується як під 4-й версією php4, так і під 3-ої.

Далі в програмі: докладний опис функцій роботи з mysql, форма для введення записів, читання (імпорт) даних з файлу і запис (експорт) в файл, index.php3.

Схожі статті