Лістинг 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; просмотров: 545;