СУБД MySQL
СУБД MySQL
Що таке MySQL
Можливості MySQL.
Типи полів
Модифікатори
phpMyAdmin
phpMyAdmin
Алгоритм роботи з БД в РНР
Мінімум потрібних функцій
Функції для роботи з MySQL
Функції для роботи з MySQL
Функції для роботи з MySQL
Приклад роботи з БД
Приклад: Що буде?
Розміщення БД
Розміщення БД
Розміщення БД
Додавання записів
Функції обробки результатів запиту
Отримання даних
Отримання даних
Отримання даних
Отримання даних
Отримання даних
Отримання даних
Отримання даних
Отримання даних
Отримання даних
Додавання даних
Додавання даних
Завантаження/вивантаження даних
Завантаження/вивантаження даних
Завантаження/вивантаження даних
Завантаження/вивантаження даних
Завантаження/вивантаження даних
Завантаження/вивантаження даних
Література:
795.50K
Category: databasedatabase

СУБД MySQL PHP. Лекція №7

1. СУБД MySQL

PHP

2. СУБД MySQL

Одна з популярних СУБД, що
використовуються в Webпрограмуванні

3. Що таке MySQL

MySQL - компактний багатопотічний сервер баз даних.
MySQL характеризується великою швидкістю, стабільністю
та легкістю у використанні.
MySQL був розроблений компанією ТсХ для внутрішніх
потреб, що полягали у швидкій обробці дуже великих баз
даних.
Компанія стверджує, що використовує MySQL з 1996
року на сервері з більш ніж 40 БД, що містять 10,000
таблиць, з яких більш ніж 500 мають більш 7 мільйонів
рядків.

4. Можливості MySQL.

Короткий перелік можливостей MySQL.
1. Підтримується необмежена кількість користувачів, що
одночасно працюють з базою даних.
2. Кількість рядків у таблицях може досягати 50 млн!
3. Швидке виконання команд. Можливо MySQL
найшвидший сервер з існуючих.
4. Проста та ефективна система безпеки.

5. Типи полів

Строки
VARCHAR(n) – від 1 до 255
символів
TINYTEXT
TEXT – не більш 65535
символів
MEDIUMTEXT
LONGTEXT
Дата і час
DATE - дата в форматі
YYYY-MM-DD
TIME - час в форматі HH:
MM: SS
DATETIME - дата і час в
форматі YYYY-MM-DD HH:
MM: SS
TIMESTAMP - дата і час в
форматі timestamp, при
отриманні значення поля
воно відбивається не в
форматі timestamp, а у
вигляді YYYY-MM-DD HH:
MM: SS

6. Модифікатори

До типу можна приєднувати модифікатори, які задають
поведінку типу та операції, які дозволено / заборонено
виконувати з відповідними стовпцями
not null - поле не може містити невизначене значення,
поле обов'язково має бути ініціалізовано при вставці
нового запису в таблицю
primary key - поле є первинним ключем
auto_increment - при вставці нового запису поле
отримає унікальне значення…

7. phpMyAdmin

Система адміністрування, цілком написана на
PHP
Дозволяє
Створювати та видаляти бази даних
Створювати та видаляти таблиці баз даних
Переглядати і редагувати бази даних і їх таблиці
Змінювати структуру таблиць
переглядати статистику

8. phpMyAdmin

9. Алгоритм роботи з БД в РНР

1.
2.
3.
4.
5.
Встановлюємо з'єднання з сервером
Вибираємо потрібну базу даних
Робимо запит до сервера баз даних
(sql запит)
Обробляємо результат запиту, якщо
це необхідно
Закриваємо з'єднання
(відключаємося від сервера БД)

10. Мінімум потрібних функцій

mysql_connect();
mysql_select_db();
mysql_query();
mysql_fetch_array();
mysql_close();

11. Функції для роботи з MySQL

mysql_connect(string hostname, string
username, string password)
встановлює з’єднання з MySQLсервером
mysql_connect("localhost", "root", "");

12. Функції для роботи з MySQL

mysql_close ()
закриває з’єднання з MySQL-сервером
mysql_close();

13. Функції для роботи з MySQL

mysql_select_db(string dbname)
вибирає базу даних
mysql_select_db("test");
mysql_query(string query)
формування і відправка SQL-запита

14. Приклад роботи з БД

<?php
// Дані для mysql серверу
$dbhost = "localhost"; // Хост
$dbuser = "guest"; // І’мя користувача
$dbpassword = "mypassword"; // Пароль
$dbname = "database"; // І’мя бази даних
// Підключаємося до mysql серверу
$link = mysql_connect($dbhost, $dbuser, $dbpassword);
// Вибираємо нашу базу даних
mysql_select_db($dbname, $link);
// Створюємо таблицю customer // тобто робимо sql запит
$query = "create table customer (id int(2) primary key
auto_increment, name varchar(100), tel varchar(20))";
mysql_query($query, $link);
// Закриваємо підключення
mysql_close($link)
?>

15. Приклад: Що буде?

<?
$id=mysql_connect("localhost","root","");
mysql_query("create database `phonebase`");
mysql_select_db(" phonebase ");
mysql_query("CREATE TABLE `phone` (`name`
TEXT NOT NULL ,`email` VARCHAR( 20 ) NOT NULL
,`number` VARCHAR( 9 ) NOT NULL ,`id` INT NOT
NULL AUTO_INCREMENT, PRIMARY KEY ( `id` ) );");
?>

16. Розміщення БД

В каталозі data при створенні нової
БД створюється каталог з такою ж
назвою

17. Розміщення БД

Кожна таблиця розміщується в трьох
файлах
table.frm - містить структуру самої таблиці
table.myd - зберігаються фактичні дані
table.myi - зберігаються дані про ключі та інші
службові дані, необхідні MySQL для швидкого
пошуку даних в файлі table.myd

18. Розміщення БД

19. Додавання записів

<?
$id=mysql_connect("localhost","root","");
if ($id==0)
die("Не можу підключитися до MySQL<br>");
else
echo «Підключення з MySQL встановлено<br>";
mysql_select_db("phonebase");
mysql_query("INSERT INTO `phone` ( `name` , `email` ,
`number` , `id` ) VALUES (‘Іванов', '[email protected]',
'123456789', 'null');");
mysql_query("INSERT INTO `phone` ( `name` , `email` ,
`number` , `id` ) VALUES ('Петров', '[email protected]',
'987654321', 'null');");
mysql_query("INSERT INTO `phone` ( `name` , `email` ,
`number` , `id` ) VALUES ('Михайленко',
'[email protected]', '192837465', 'null');");
?>

20. Функції обробки результатів запиту

Якщо запит, виконаний за допомогою функції
mysql_query() успішно виконався, то в результаті
клієнт отримає набір записів, який може бути
оброблений наступними функціями PHP:
mysql_result() - отримати необхідний елемент з
набору записів;
mysql_fetch_array() - занести запис в масив;
mysql_fetch_row() - занести запис в масив;
mysql_fetch_assoc() - занести запис в
асоціативний масив;
mysql_fetch_object() - занести запис в об'єкт.

21. Отримання даних

mysql_fetch_array(int $result)
вибирає результуючий рядок як
асоціативний масив, дані
зберігаються як в асоціативному, так і
в індексному масивах

22. Отримання даних

mysql_fetch_assoc(int $result)
mysql_fetch_row(int $result)
вибирають результуючий рядок в
асоціативний масив, дані
зберігаються в асоціативному /
індексному масиві

23. Отримання даних

mysql_num_rows(int $result)
mysql_num_fields(int $result)
повертають число рядків (полів) в
результуючому рядку

24. Отримання даних

<?
$id=mysql_connect("localhost","root","");
if ($id==0)
die("Не можу підключитися до MySQL<br>");
mysql_select_db("phonebase");
$result=mysql_query("select * from phone");
for($i=0;$i<mysql_numrows($result);$i++)
{
$arr=mysql_fetch_array($result);
foreach ($arr as $k=>$v)
echo '$arr[',$k,"]=",$v,"<br>";
}
?>

25. Отримання даних

<?
$id=mysql_connect("localhost","root","");
if ($id==0)
die("Не можу підключитися до MySQL<br >");
mysql_select_db("phonebase");
$result=mysql_query("select * from phone");
for($i=0;$i<mysql_numrows($result);$i++)
{
$arr=mysql_fetch_assoc($result);
foreach ($arr as $k=>$v)
echo '$arr[',$k,"]=",$v,"<br>";
}
?>

26. Отримання даних

<?
$id=mysql_connect("localhost","root","");
if ($id==0)
die("Не можу підключитися до MySQL<br >");
mysql_select_db("phonebase");
$result=mysql_query("select * from phone");
for($i=0;$i<mysql_numrows($result);$i++)
{
$arr=mysql_fetch_row($result);
foreach ($arr as $k=>$v)
echo '$arr[',$k,"]=",$v,"<br>";
}
?>

27. Отримання даних

<?
$id=mysql_connect("localhost","root","");
if ($id==0)
die("Не можу підключитися до MySQL>");
mysql_select_db("phonebase");
$result=mysql_query("select * from phone");
while
(list($name,$email,$number,$id)=mysql_fetch_row($
result))
{
echo '$name=',$name,"<br>";
echo '$email=',$email,"<br>";
echo '$number=',$number,"<br>";
echo '$id=',$id,"<br>";
}
?>

28. Отримання даних

<html>
<table border=1>
<tr>
<th>ПІБ</th>
<th>E-mail</th>
<th>Номер</th>
</tr>
<?
$id=mysql_connect("localhost","root","");
if ($id==0)
die("Не можу підключитися до MySQL>");
mysql_select_db("phonebase");

29. Отримання даних

$result=mysql_query("select * from phone");
while
(list($name,$email,$number,$id)=mysql_fetch_row($
result))
echo ("<tr><td><a
href=\mysql\mysql_info.php?id=$id&name=$name>
$name</a></td><td>$email</td><td>$number</t
d></tr>");
?>
</table>
</html>

30. Додавання даних

<form
action=http://localhost/mysql/mysql_insert_t
able.php>
<p>Имя:<input type=text name=name>
<p>E-mail:<input type=text name=email>
<p>Номер:<input type=text
name=number>
<p><input type=submit>
</form>

31. Додавання даних

<?
$id=mysql_connect("localhost","root","");
if ($id==0) die("Не могу підключитися до MySQL");
mysql_select_db("phonebase");
mysql_query("insert into phone
(name,email,number,id)
values('$_REQUEST[name]','$_REQUEST[email]','$_R
EQUEST[number]','null');");
?>
В таблицу додано:<br>
ПІБ: <?echo $_REQUEST[name]?><br>
E-mail: <?echo $_REQUEST[email]?><br>
Номер: <?echo $_REQUEST[number]?><br>

32. Завантаження/вивантаження даних

За замовчуванням MySQL повертає всі
результати користувачеві, який зробив
запит
Але можливо і перенаправлення
результатів запиту в файл
Для цього використовується специфікатор
INTO OUTFILE filename
FIELDS TERMINATED BY 'c' визначає
символ, який використовується для поділу
полів

33. Завантаження/вивантаження даних

Для читання текстового файлу і вставки даних в
таблицю використовується оператор LOAD
LOAD DATA [LOCAL] INFILE file INTO TABLE ...
Передбачається, що зазначений файл знаходиться
на сервері
Якщо шлях до файлу не вказано, то
передбачається, що він знаходиться в тому ж
каталозі, що і база даних
Специфікатор LOCAL задає розташування файлу
на клієнтській машині

34. Завантаження/вивантаження даних

<?php
$id=mysql_connect("localhost","root","");
if ($id==0) die("Не могу підключитися до MySQL<br>");
mysql_query("create database `out`");
mysql_select_db("out");
mysql_query("CREATE TABLE `info` (`a` TEXT NOT NULL ,`b`
INT NOT NULL ,`c` TIMESTAMP);");
mysql_query("insert into info values('one',1,null)");
mysql_query("insert into info values('two',2,null)");
mysql_query("insert into info values('three',3,null)");
$result=mysql_db_query("out","select * from info");
while ($arr=mysql_fetch_assoc($result))
foreach ($arr as $k=>$v)
echo '$arr[',$k,"]=",$v,"<br>";
?>

35. Завантаження/вивантаження даних

36. Завантаження/вивантаження даних

<?
$id=mysql_connect("localhost","root","");
if ($id==0) die("Не могу підключитися до
MySQL");
mysql_select_db("out");
mysql_query("select * from info into outfile
'z:/out.txt' fields terminated by '#'");
?>

37. Завантаження/вивантаження даних

<?
$id=mysql_connect("localhost","root","");
if ($id==0) die("Не могу підключитися до MySQL");
mysql_select_db("out");
mysql_query("load data local infile 'z:/out.txt' into
table info fields terminated by '#'");
mysql_query("select * from info");
$result=mysql_db_query("out","select * from info");
while ($arr=mysql_fetch_assoc($result))
foreach ($arr as $k=>$v)
echo '$arr[',$k,"]=",$v,"<br>";
?>

38. Література:

English     Русский Rules