Лістинг 6.10. insert_book.php — сценарій записує нові книги в базу даних

<html><head><title> Book Entry Results by Mikle</title></head> <body>

<hl> Book Entry Results</hl>

<?

if (!$isbn || !$author || !$title || !$price)

echo "You have not entered all the required details .<br>"

."Please go back and try again."; exit ; }

$isbn = addslashes($isbn);

$author = addslashes($author);

$title = addslashes($title);

$price = doubleval($price);

@$db = mysql_pconnect("localhost", "bookorama", "bookorama");

if (!$db) {

echo "Error: Could not connect to database. Please try again later."; exit;}

mysql_select_db ("books");

$query = "insert into books values

('".$isbn."', '".$author."', ' ".$title."', '".$price."')";

$result = mysql_query($query);

if ($result)

echo mysql_affected_rows()." book inserted into database.";

?>

</body> </html>

Після вивчення коду insert_book.php стане ясно, що він багато в чому схожий на код сценарію для витягання даних з бази. Ми перевіряємо, аби всі поля форми були заповнені і відформатували за допомогою addslashes() перед внесенням даних до бази.

$isbn = addslashes($isbn); $author = addslashes($author);

$title = addslashes($title); $price = doubleval($price);

Оскільки ціни зберігаються в базі у вигляді чисел з плаваючою комою, символи похилої риси вони містити не повинні. Це досягається за допомогою функції doubleval(), яка відфільтрує всі непідходящі символи в числовому полі. Ця ж функція поклопочеться і про всі символи валюти, які користувач може друкувати при заповненні форми.

Ми знову з'єднуємося з базою даних, використовуючи mysql_pconnect(), і набудовуємо запит. В даному випадку це INSERT.

$query = "insert into books values

('".$isbn."', '".$author."', '''.$title."', '''.$price.''')";

$result = mysql_query($query);

Виконання відбувається не без допомоги mysql_query().

Одна істотна відмінність між INSERT і SELECT полягає у використанні mysql_affected_rows():

echo mysql_af?ected_rows(). " book inserted into database.";

У попередньому сценарії функція mysql_num_rows() застосовувалася для визначення кількості рядків, які повертатиме SELECT. При написанні запитів, які змінюють базу даних, наприклад, INSERT, DELETE, UPDATE, слід використовувати mysql_affected_rows().

Ми розглянули основи використання баз даних MYSQL з РНР. Поглянемо ще на деякі корисні функції, не згадані раніше.

Розглянемо коротко декілька корисних функцій PHP-MySQL.

Звільнення ресурсів.Якщо під час виконання сценарію виникають проблеми, пов'язані з браком пам'яті, згодитися функція mysql_free_result(). Ось її прототип:

int mysql_free_result(int result);

Вона викликається з ідентифікатором результату:

mysql_free_result($result);

У результаті звільняється пам'ять, займана результатом. Вочевидь, що до обробки результату ця функція викликатися не повинна.

Створення і видалення баз даних.Для створення нової бази даних MYSQL з РНР-сценария застосовується функція mysql_create_db(), а для видалення бази даних — mysql_drop_db(). Розглянемо прототипи цих функцій:

int mysql_create_db(string database [int database_connection]);

int mysql_drop_db(string database [int database_connection]);

Обоє функції використовують ім'я бази даних і з'єднання. Якщо з'єднання немає, використовуватиметься останнє відкрите. Функції створюють або видаляють вказану базу даних. В разі успіху функції повертають значення true, а в разі невдачі — false.

Інші інтерфейси РНР-баз даних. РНР підтримує різні бібліотеки, що дає можливість підключатися до величезної кількості баз даних, включаючи Oracle, Microsoft SQL Server, mSQL і POSTGRESQL. В цілому принципи підключення і подачі запитів будь-якій з цих баз даних одні і ті ж. Назви функцій можуть бути різними, різні бази даних можуть мати різну функціональність, але якщо ви можете підключитися до MYSQL, то інші бази навряд чи поставлять вас в безвихідь.

Якщо необхідно використовувати базу даних, яка не має специфічної бібліотеки, доступної в РНР, можна вдатися до узагальнених функцій ODBC.

ODBC — це відкритий інтерфейс доступу до баз даних і є стандартом підключення до баз даних. Функціональність ODBC не можна назвати занадто широкою, проте на те є сповна очевидні причини: або універсальна сумісність, або задіювання специфічних можливостей кожної системи.

Технології вживання.








Дата добавления: 2016-04-02; просмотров: 541;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.