Відправлення запитів до бази даних в php

Відео: Навчання PHP - 14. Передача даних в БД по AJAX

Відправлення запитів до бази даних в PHP

У цій статті ми навчимося відправляти запити до бази даних через PHP. Дана стаття дуже важлива, і її необхідно Вам обов`язково зрозуміти. Однак, заспокою Вас - матеріал дуже простий, тому труднощів бути не повинно.

Перш, ніж перейти до теми статті, я заздалегідь попереджаю, що не буду детально розбирати мова SQL. Вся необхідна інформація розбирається в категорії, присвяченій мови SQL, а тут ми тільки працюємо з MySQL через PHP.

Тепер переходимо до відправці запитів до бази даних в PHP:

lt ;?php
$ mysqli
=@new mysqli(`Localhost`,`Admin`,`Pass`,`Mybase`) -
if(mysqli_connect_errno()){
echo
"Підключення неможливо:".mysqli_connect_error() -
}
$ mysqli
-gt;query(`INSERT INTO mytable (name, email) VALUES ( "MyName", "[email protected]")`) -
$ mysqli
-gt;close() -
?gt;

В даному прикладі ми підключилися до бази даних, перевірили успішність підключення, відправили запит за допомогою методу query (), а потім закрили підключення. Як бачите, все дуже просто. Для відправки будь-яких SQL-запитів достатньо всього одного методу - query (), тому в даному випадку все шалено просто.

Відео: PHP PDO Результат запиту в базу даних




Тепер трохи ускладнити завдання. Давайте з Вами розберемо запити, які повертають result_set - результат. Найпопулярніший запит, возврающающій result_set - це вибірка даних з таблиці. У наступному прикладі ми з Вами зробимо вибірку даних, а потім виведемо результат:

lt ;?php
$ mysqli
=@new mysqli(`Localhost`,`Admin`,`Pass`,`Mybase`) -
if(mysqli_connect_errno()){
echo
"Підключення неможливо:".mysqli_connect_error() -
}
$ result_set
= $ mysqli-gt;query(`SELECT * FROM mytable`) -
while($ row = $ result_set-gt;fetch_assoc()){
print_r
($ row) -
echo
"
"
-
}
$ result_set
-gt;close() -
$ mysqli
-gt;close() -
?gt;

Для початку трохи поясню, що з себе представляє result_set. Result_set - це таблиця з результатом. У цій таблиці є набір записів (рядки таблиці). І для виведення всіх записів треба перебрати кожен рядок таблиці і вивести її. А тепер пояснюю приклад: після відправки запиту у нас формується result_set. Потім ми в циклі присвоюємо змінної row значення чергового рядка, тобто одновимірний масив, який повертає метод fetch_assoc (). Коли всі рядки закінчаться, метод fetch_assoc () поверне false, і буде проведений вихід з циклу. всередині циклу while ми просто виводимо масив з використанням налагоджувальної функції print_r (), хоча, безумовно, можна було б вивести з використанням foreach, але зараз це не потрібно.

Відео: Вивчаємо MySQL | Урок №39 - Додавання записів в БД за допомогою коду




Давайте коротко підведемо підсумок, як потрібно працювати з result_set:

  1. отримати result_set, відправивши відповідний запит до бази даних.
  2. У циклі на кожній ітерації привласнювати наступний рядок (запис) з result_set з використанням методу fetch_assoc () деякої змінної row. Далі Ви можете працювати з цієї змінної як з одновимірним асоціативним масивом, у якого ключі - це назви полів таблиці, а значення відповідають поточного запису.
  3. обов`язково закрийте result_set методом close (), щоб ТРВОДу ресурси.

Як Ви помітили, метод fetch_assoc () повертає завжди такий запис. Тобто спочатку 1-ю, потім 2-ю, потім 3-ю і так далі. Якщо у Вас є непоганий досвід програмування, то Ви відразу здогадаєтеся, що це відбувається завдяки внутрішньому вказівником, який Ви, зрозуміло, можете рухати. Де це використовується? Наприклад, це може використовуватися, коли Вам необхідно попрацювати з result_set НЕ 1, а 2 і більше разів. Щоб заново не формувати той же запит, можна просто пересунути покажчик в початок. І тоді можна знову займатися перебором result_set за допомогою методу fetch_assoc ().

Для зміни положення покажчика існує метод data_seek (), який приймає ціле число від 0 до "кількості записів - 1", Відповідно покажчик встає на відповідну параметру запис:

lt ;?php
$ mysqli
=@new mysqli(`Localhost`,`Admin`,`Pass`,`Mybase`) -
if(mysqli_connect_errno()){
echo
"Підключення неможливо:".mysqli_connect_error() -
}
$ result_set
= $ mysqli-gt;query(`SELECT * FROM mytable`) -
$ result_set
-gt;num_rows-
while($ row = $ result_set-gt;fetch_assoc()){
print_r
($ row) -
echo
"
"
-
}
$ result_set
-gt;data_seek(0) -
while($ row = $ result_set-gt;fetch_assoc()){
print_r
($ row) -
echo
"
"
-
}
$ result_set
-gt;close() -
$ mysqli
-gt;close() -
?gt;

У цьому прикладі ми вивели кількість записів в result_set за допомогою властивості num_rows. А також познайомилися з методом data_seek (). Тобто ми перебрали весь результат, потім повернули покажчик на 0-ю запис і знову перебрали результат.

У цій статті ми з Вами повторили підключення до бази даних і закриття підключення. А також дізналися, як відправляти запити до бази даних через PHP. дізналися, як отримувати result_set і як працювати з ним. Це все, що Вам необхідно знати для успішної роботи з MySQL в PHP.

Поділися в соціальних мережах:

Схожі
Підключення до бази даних в phpПідключення до бази даних в php
Як зробити підписку на сайті (v2)Як зробити підписку на сайті (v2)
Як динамічно отримувати коментарі з бази даних.Як динамічно отримувати коментарі з бази даних.
Як зробити коментування на сайтіЯк зробити коментування на сайті
Запит sql на вибірку записівЗапит sql на вибірку записів
Pdo. Частина 1.Pdo. Частина 1.
Як знайти помилку в sql-запитіЯк знайти помилку в sql-запиті
Оператор придушення помилок в phpОператор придушення помилок в php
Як зробити динамічне додавання коментарів, використовуючи ajax.Як зробити динамічне додавання коментарів, використовуючи ajax.
Визначення країни по ip-адресою через бдВизначення країни по ip-адресою через бд
» » Відправлення запитів до бази даних в php