Відправлення запитів до бази даних в php
Відео: Навчання PHP - 14. Передача даних в БД по AJAX
У цій статті ми навчимося відправляти запити до бази даних через 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:
- отримати result_set, відправивши відповідний запит до бази даних.
- У циклі на кожній ітерації привласнювати наступний рядок (запис) з result_set з використанням методу fetch_assoc () деякої змінної row. Далі Ви можете працювати з цієї змінної як з одновимірним асоціативним масивом, у якого ключі - це назви полів таблиці, а значення відповідають поточного запису.
- обов`язково закрийте 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.
Як зробити підписку на сайті (v2)
Як дізнатися останній id в mysql
Як знайти помилку в sql-запиті
Як динамічно отримувати коментарі з бази даних.
Як зробити динамічне додавання коментарів, використовуючи ajax.
Як зробити коментування на сайті
Як дізнатися, скільки змінилося рядків після update
Перевірка зайнятості логіна на ajax
Pdo. Частина 1.
Запит sql на створення і видалення бази даних
Запит sql на вибірку записів
Знайомство з phpmyadmin
Обробка помилок в php
Клас для роботи з базою даних
Підключення до бази даних в php
Оптимізація запитів до mysql
Автоматичне резервне копіювання на php
Оператор придушення помилок в php
Навігація по сторінках на php
Винятки в php
Визначення країни по ip-адресою через бд
Підключення до бази даних в php
Як зробити підписку на сайті (v2)
Як динамічно отримувати коментарі з бази даних.
Як зробити коментування на сайті
Запит sql на вибірку записів
Pdo. Частина 1.
Як знайти помилку в sql-запиті
Оператор придушення помилок в php
Як зробити динамічне додавання коментарів, використовуючи ajax.
Визначення країни по ip-адресою через бд