Инструменты пользователя

Инструменты сайта


software:development:web:docs:learn:mariadb:вatabase_creation

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
software:development:web:docs:learn:mariadb:вatabase_creation [2024/02/25 18:29] – [Подготовленные операторы и связанные параметры] vladpolskiysoftware:development:web:docs:learn:mariadb:вatabase_creation [2024/02/25 21:35] (текущий) – [Создание новой базы данных] vladpolskiy
Строка 1: Строка 1:
-======PHP Создать базу данных MySQL======+======База данных PHP MySQL====== 
 +С помощью PHP вы можете подключаться к базам данных и управлять ими. 
 + 
 +MySQL — самая популярная система баз данных, используемая с PHP. 
 +=====Что такое MySQL?===== 
 +  * MySQL — это система баз данных, используемая в Интернете. 
 +  * MySQL — это система баз данных, работающая на сервере 
 +  * MySQL идеально подходит как для небольших, так и для больших приложений. 
 +  * MySQL очень быстрый, надежный и простой в использовании. 
 +  * MySQL использует стандартный SQL 
 +  * MySQL компилируется на нескольких платформах 
 +  * MySQL можно бесплатно загрузить и использовать. 
 +  * MySQL разрабатывается, распространяется и поддерживается корпорацией Oracle. 
 +  * MySQL названа в честь дочери соучредителя Монти Видениуса: Моя 
 +  * Данные в базе данных MySQL хранятся в таблицах. Таблица представляет собой набор связанных данных, состоящий из столбцов и строк. 
 +  *  
 +Базы данных полезны для хранения категориальной информации. Компания может иметь базу данных со следующими таблицами: 
 + 
 +  * Сотрудники 
 +  * Продукты 
 +  * Клиенты 
 +  * Заказы 
 + 
 +=====Система баз данных PHP + MySQL===== 
 +  * PHP в сочетании с MySQL являются кроссплатформенными (вы можете разрабатывать в Windows и использовать платформу Unix). 
 +====Запросы к базе данных==== 
 +Запрос – это вопрос или просьба. 
 + 
 +Мы можем запросить базу данных для получения конкретной информации и получить набор записей. 
 + 
 +Посмотрите на следующий запрос (с использованием стандартного SQL): 
 +<code> 
 +SELECT LastName FROM Employees 
 +</code> 
 +Приведенный выше запрос выбирает все данные в столбце «Фамилия» из таблицы «Сотрудники». 
 + 
 +Чтобы узнать больше о SQL, посетите [[https://www.w3schools.com/sql/default.asp|наш учебник по SQL]]. 
 +====Скачать базу данных MySQL==== 
 +Если у вас нет PHP-сервера с базой данных MySQL, вы можете скачать его бесплатно здесь: http://www.mysql.com . 
 +====Факты о базе данных MySQL==== 
 +MySQL — это де-факто стандартная система баз данных для веб-сайтов с ОГРОМНЫМИ объемами как данных, так и конечных пользователей (например, Facebook, Twitter и Wikipedia). 
 + 
 +Еще одна замечательная особенность MySQL заключается в том, что ее можно масштабировать для поддержки встроенных приложений баз данных. 
 + 
 +Посетите http://www.mysql.com/customers/ для обзора компаний, использующих MySQL. 
 +=====Подготовка файлов=====
 Создадим c помощью блокнота на нашем сервере файл index.php Создадим c помощью блокнота на нашем сервере файл index.php
  
Строка 24: Строка 69:
 <file html index.php> <file html index.php>
 <?php <?php
-$servername = "localhost"; +$servername = "localhost"; // Адрес сервера базы данных 
-$username = "root"; +$username = "root";  // Имя пользователя базы данных 
-$password = "********";+$password = "********"; // Пароль пользователя базы данных
  
 // Создаём соединение // Создаём соединение
Строка 350: Строка 395:
 {{:software:development:web:docs:learn:mariadb:mariadb_creat_database_12.png?700|}} {{:software:development:web:docs:learn:mariadb:mariadb_creat_database_12.png?700|}}
 \\   \\  
-=====Подготовленные операторы и связанные параметры===== +=====Выбор данных из базы данных MySQL===== 
-Подготовленный оператор — это функция, используемая для многократного выполнения одних и тех же (или аналогичных) операторов SQL с высокой эффективностью. +Оператор SELECT используется для выбора данных из одной или нескольких таблиц: 
- +<code> 
-Подготовленные операторы в основном работают следующим образом: +SELECT column_name(sFROM table_name 
- +</code> 
-  - Подготовка. Шаблон инструкции SQL создается и отправляется в базу данных. Определенные значения остаются неуказанными и называются параметрами (помечены знаком "?"). ПримерINSERT INTO MyGuests VALUES(?, ?, ?+или мы можем использовать символ *, чтобы выбрать ВСЕ столбцы из таблицы: 
-  - База данных анализирует, компилирует и выполняет оптимизацию запросов по шаблону инструкции SQL и сохраняет результат, не выполняя его. +<code> 
-  - Выполнение: позже приложение привязывает значения к параметрам, и база данных выполняет оператор. Приложение может выполнить оператор столько раз, сколько захочет, с разными значениями. +SELECT FROM table_name 
-По сравнению с непосредственным выполнением операторов SQL подготовленные операторы имеют три основных преимущества+</code> 
- +В следующем примере выбираются столбцы idfirstname и Lastname из таблицы MyGuests и отображаются на странице:
-  Подготовленные операторы сокращают время анализа, поскольку подготовка запроса выполняется только один раз (хотя оператор выполняется несколько раз). +
-  * Связанные параметры минимизируют пропускную способность сервера, поскольку вам нужно каждый раз отправлять только параметры, а не весь запрос. +
-  * Подготовленные операторы очень полезны против SQL-инъекций, поскольку значения параметров, которые передаются позже с использованием другого протоколане требуют правильного экранирования. Если исходный шаблон инструкции не получен из внешних входных данных, SQL-инъекция не может произойти. +
-В следующем примере используются подготовленные операторы и связанные параметры в MySQLi:+
 В тело нашей страницы между тегами <body> и </body> вставим следующий php код В тело нашей страницы между тегами <body> и </body> вставим следующий php код
 <file html index.php> <file html index.php>
Строка 381: Строка 422:
      $stmt->bind_param("sss", $firstname, $lastname, $email);      $stmt->bind_param("sss", $firstname, $lastname, $email);
  
-     // задайте параметры и выполните +      
-     $firstname = "John"; +     $sql = "SELECT id, firstname, lastname FROM MyGuests"; 
-     $lastname = "Doe"; +     $result = $conn->query($sql);
-     $email "john@example.com"; +
-     $stmt->execute();+
  
-     $firstname = "Mary"+     if ($result->num_rows > 0) { 
-     $lastname "Moe"; +       //выводим данные каждой строки 
-     $email = "mary@example.com"; +       while($row $result->fetch_assoc()) { 
-     $stmt->execute();+         echo "id: $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; 
 +       } 
 +     } else { 
 +       echo "0 results"; 
 +     
 +     ? 
 +</file> 
 +Строки кода для пояснения из примера выше:
  
-     $firstname = "Julie"; +Сначала мы настраиваем SQL-запрос, который выбирает столбцы идентификатора, имени и фамилии из таблицы MyGuests. Следующая строка кода запускает запрос и помещает полученные данные в переменную с именем $result.
-     $lastname = "Dooley"; +
-     $email = "julie@example.com"; +
-     $stmt->execute();+
  
-     echo "New records created successfully";+Затем функция num_rows() проверяет, возвращено ли больше нулевых строк.
  
-     $stmt->close(); +Если возвращается более нуля строк, функция fetch_assoc() помещает все результаты в ассоциативный массив, который мы можем просмотреть в цикле. Цикл while() проходит по результирующему набору и выводит данные из столбцов id, firstname и Lastname. 
-     // Закроем соединение +\\   
-     $conn->close();+Откроем нашу страницу в браузере, где увидим надпись:  
 +  * id: 1 Имя: Джон Доу 
 +  * id: 4 - Имя: Влад Польский 
 +  * id: 5 - Имя: Джон Доу 
 +  * id: 6 - Имя: Мэри Мо 
 +  * id: 7 - Имя: Джули Дули 
 +  * id: 8 - Имя: Джон Доу 
 +  * id: 9 - Имя: Мэри Мо 
 +  * ID: 10 - Имя: Джули Дули 
 +\\   
 +{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_13.png?700|}} 
 +\\   
 +Проверим создание новой записи в таблице MyGuests базы данных my_DB в MariaDB с помощью PhpMyAdmin 
 +\\   
 +{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_14.png?700|}} 
 +\\   
 +=====Выбор и фильтрация данных из базы данных MySQL===== 
 +Предложение WHERE используется для фильтрации записей. 
 + 
 +Предложение WHERE используется для извлечения только тех записей, которые соответствуют указанному условию. 
 +<code> 
 +SELECT column_name(sFROM table_name WHERE column_name operator value  
 +</code> 
 +**Выбирайте и фильтруйте данные с помощью MySQLi** 
 +В следующем примере выбираются столбцы id, firstname и Lastname из таблицы MyGuests, где фамилия — «Doe», и отображаются на странице: 
 +В тело нашей страницы между тегами <body> и </body> вставим следующий php код 
 +<file html index.php> 
 +     <?php 
 +     $servername = "localhost";  
 +     $username = "root"; 
 +     $password = "******"; 
 +     $dbname = "my_DB"
 +     // Создаём соединение 
 +     $conn = new mysqli($servername, $username, $password, $dbname); 
 +     // Проверим подключение 
 +     if ($conn->connect_error) { 
 +       die("Ошибка соединения: " . $conn->connect_error); 
 +     
 +     // подготовить 
 +      $sql = "SELECT id, firstname, lastname FROM MyGuests WHERE lastname='Doe'"; 
 +      $result = $conn->query($sql); 
 + 
 +      if ($result->num_rows > 0) { 
 +        // output data of each row 
 +        while($row = $result->fetch_assoc()) { 
 +          echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; 
 +        } 
 +      } else { 
 +        echo "0 results"; 
 +      }
      ?>       ?> 
 </file> </file>
 Строки кода для пояснения из примера выше: Строки кода для пояснения из примера выше:
 +
 +Сначала мы настраиваем SQL-запрос, который выбирает столбцы идентификатора, имени и фамилии из таблицы MyGuests, где фамилия — «Doe». Следующая строка кода запускает запрос и помещает полученные данные в переменную с именем $result.
 +
 +Затем проверяется, function num_rows()возвращено ли более нуля строк.
 +
 +Если возвращается более нуля строк, функция fetch_assoc()помещает все результаты в ассоциативный массив, который мы можем просмотреть в цикле. Цикл while()проходит по результирующему набору и выводит данные из столбцов id, firstname и Lastname.
 +\\  
 +Откроем нашу страницу в браузере, где увидим надпись: \\  
 +id: 1 - Имя: Джон Доу\\  
 +id: 5 - Имя: Джон Доу\\  
 +id: 8 - Имя: Джон Доу
 +\\  
 +{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_15.png?700|}}
 +\\  
 +Проверим создание новой записи в таблице MyGuests базы данных my_DB в MariaDB с помощью PhpMyAdmin
 +\\  
 +{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_16.png?700|}}
 +\\  
 +=====Выбор и заказ данных из базы данных MySQL=====
 +Предложение ORDER BY используется для сортировки набора результатов в порядке возрастания или убывания.
 +
 +Предложение ORDER BY по умолчанию сортирует записи в порядке возрастания. Чтобы отсортировать записи в порядке убывания, используйте ключевое слово DESC.
 <code> <code>
-"INSERT INTO MyGuests (firstname, lastname, emailVALUES (?, ?, ?)"+SELECT column_name(sFROM table_name ORDER BY column_name(sASC|DESC 
 </code> </code>
-В нашем SQL мы вставляем вопросительный знак (?) туда, где хотим заменить целоестроковое, двойное или BLOB-значение.+**Выбор и заказ данных с помощью MySQLi** 
 +В следующем примере выбираются столбцы идентификатора, имени и фамилии из таблицы MyGuests. Записи будут упорядочены по столбцу фамилии: 
 +В тело нашей страницы между тегами <body> и </body> вставим следующий php код 
 +<file html index.php> 
 +     <?php 
 +     $servername = "localhost";  
 +     $username = "root"; 
 +     $password = "******"; 
 +     $dbname = "my_DB"; 
 +     // Создаём соединение 
 +     $conn = new mysqli($servername, $username, $password, $dbname); 
 +     // Проверим подключение 
 +     if ($conn->connect_error) { 
 +       die("Ошибка соединения: " $conn->connect_error); 
 +     } 
 +     // подготовить 
 +     $sql = "SELECT id, firstname, lastname FROM MyGuests ORDER BY lastname"; 
 +     $result = $conn->query($sql);
  
-Затем взгляните на функциюbind_param():+     if ($result->num_rows > 0) { 
 +       // output data of each row 
 +       while($row = $result->fetch_assoc()) { 
 +         echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; 
 +       } 
 +     } else { 
 +       echo "0 results"; 
 +     } 
 +     // Закроем соединение 
 +     $conn->close(); 
 +     ?> 
 +</file> 
 +Строки кода для пояснения из примера выше: 
 + 
 +Сначала мы настраиваем SQL-запрос, который выбирает столбцы идентификатора, имени и фамилии из таблицы MyGuests. Записи будут упорядочены по столбцу фамилии. Следующая строка кода запускает запрос и помещает полученные данные в переменную с именем $result. 
 + 
 +Затем проверяется, function num_rows()возвращено ли более нуля строк. 
 + 
 +Если возвращается более нуля строк, функция fetch_assoc()помещает все результаты в ассоциативный массив, который мы можем просмотреть в цикле. Цикл while()проходит по результирующему набору и выводит данные из столбцов id, firstname и Lastname. 
 +\\   
 +Откроем нашу страницу в браузере, где увидим надпись: \\   
 +id: 1 - Name: John Doe\\   
 +id: 5 - Name: John Doe\\   
 +id: 8 - Name: John Doe\\   
 +id: 7 - Name: Julie Dooley\\   
 +id: 10 - Name: Julie Dooley\\   
 +id: 6 - Name: Mary Moe\\   
 +id: 9 - Name: Mary Moe\\   
 +id: 4 - Name: Vlad Polskiy\\   
 +\\   
 +{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_17.png?700|}} 
 +\\   
 +Проверим создание новой записи в таблице MyGuests базы данных my_DB в MariaDB с помощью PhpMyAdmin 
 +\\   
 +{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_18.png?700|}} 
 +\\   
 +=====Удаление данных из таблицы MySQL с использованием MySQLi ===== 
 +Оператор DELETE используется для удаления записей из таблицы:
 <code> <code>
-$stmt->bind_param("sss", $firstname, $lastname, $email);+DELETE FROM table_name 
 +WHERE some_column = some_value
 </code> </code>
-Эта функция привязывает параметры к SQL-запросу и сообщает базе данных, что это за параметры. Аргумент «sss» перечисляет типы данных, которыми являются параметры. Символ s сообщает MySQL, что параметр является строкой.+**Обратите внимание на предложение WHERE в синтаксисе DELETE: Предложение WHERE указывает, какую запись или записи следует удалить. Если вы опустите предложение WHERE, все записи будут удалены!** 
 +Давайте посмотрим на таблицу «MyGuests»: 
 +\\   
 +{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_18.png?700|}} 
 +\\   
 +В следующих примерах удаляется запись с идентификатором = 5 в таблице «MyGuests»: 
 +В тело нашей страницы между тегами <body> и </body> вставим следующий php код 
 +<file html index.php> 
 +     <?php 
 +     $servername = "localhost";  
 +     $username = "root"; 
 +     $password = "******"; 
 +     $dbname = "my_DB"; 
 +     // Создаём соединение 
 +     $conn = new mysqli($servername, $username, $password, $dbname); 
 +     // Проверим подключение 
 +     if ($conn->connect_error) { 
 +       die("Ошибка соединения:$conn->connect_error); 
 +     } 
 +     // sql to delete a record 
 +     $sql = "DELETE FROM MyGuests WHERE id=5";
  
-Аргумент может быть одного из четырех типов:+     if ($conn->query($sql) === TRUE) { 
 +      echo "Record deleted successfully"; 
 +     } else { 
 +     echo "Error deleting record: " . $conn->error; 
 +     } 
 +     // Закроем соединение 
 +     $conn->close(); 
 +     ?> 
 +</file>
  
-  * i - целое число +\\   
-  * d - двойной +Откроем нашу страницу в браузере, где увидим надпись: Запись успешно удалена 
-  s - строка +\\   
-  * b - БЛОБ +{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_19.png?700|}} 
-У нас должно быть по одному из них для каждого параметра.+\\   
 +Проверим записи в таблице MyGuests базы данных my_DB в MariaDB с помощью PhpMyAdmin 
 +\\   
 +{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_20.png?700|}} 
 +\\   
 +=====Обновление данных в таблице MySQL, используя MySQLi ===== 
 +Оператор UPDATE используется для обновления существующих записей в таблице: 
 +<code> 
 +UPDATE table_name 
 +SET column1=value, column2=value2,... 
 +WHERE some_column=some_value  
 +</code> 
 +**Обратите внимание на предложение WHERE в синтаксисе UPDATE: Предложение WHERE указывает, какую запись или записи следует обновить. Если вы опустите предложение WHERE, все записи будут обновлены!** 
 +Давайте посмотрим на таблицу «MyGuests»: 
 +\\   
 +{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_20.png?700|}} 
 +\\   
 +В следующих примерах запись обновляется с id=4 в таблице «MyGuests». 
 +В тело нашей страницы между тегами <body> и </body> вставим следующий php код 
 +<file html index.php> 
 +     <?php 
 +     $servername = "localhost";  
 +     $username = "root"; 
 +     $password = "******"; 
 +     $dbname = "my_DB"; 
 +     // Создаём соединение 
 +     $conn = new mysqli($servername, $username, $password, $dbname); 
 +     // Проверим подключение 
 +     if ($conn->connect_error) { 
 +       die("Ошибка соединения:$conn->connect_error); 
 +     } 
 +     $sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";
  
-Сообщая mysql, какой тип данных следует ожидать, мы минимизируем риск SQL-инъекций.+     if ($conn->query($sql) === TRUE) { 
 +      echo "Record updated successfully"; 
 +     } else { 
 +       echo "Error updating record: " . $conn->error; 
 +      } 
 +     // Закроем соединение 
 +     $conn->close(); 
 +     ?> 
 +</file>
  
-**Примечание.** Если мы хотим вставить какие-либо данные из внешних источников (например, пользовательский ввод), очень важно, чтобы данные были очищены и проверены. 
 \\   \\  
-Откроем нашу страницу в браузере, где увидим надпись: Новые записи успешно созданы+Откроем нашу страницу в браузере, где увидим надпись: Запись успешно удалена
 \\   \\  
-{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_11.png?700|}}+{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_21.png?700|}}
 \\   \\  
-Проверим создание новой записи в таблице MyGuests базы данных my_DB в MariaDB с помощью PhpMyAdmin+Проверим записи в таблице MyGuests базы данных my_DB в MariaDB с помощью PhpMyAdmin
 \\   \\  
-{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_12.png?700|}}+{{:software:development:web:docs:learn:mariadb:mariadb_creat_database_22.png?700|}}
 \\   \\  
 +=====Ограничение выбора данных из базы данных MySQL =====
 +MySQL предоставляет предложение LIMIT, которое используется для указания количества возвращаемых записей.
 +
 +Предложение LIMIT упрощает кодирование многостраничных результатов или разбиение на страницы с помощью SQL и очень полезно для больших таблиц. Возврат большого количества записей может повлиять на производительность.
 +
 +Предположим, мы хотим выбрать все записи от 1 до 30 (включительно) из таблицы «Заказы». Тогда SQL-запрос будет выглядеть так:
 +<code>
 +$sql = "SELECT * FROM Orders LIMIT 30";
 +</code>
 +При выполнении приведенного выше SQL-запроса он вернет первые 30 записей.
 +
 +Что делать, если мы хотим выбрать записи с 16 по 25 (включительно)?
 +
 +Mysql также предоставляет способ справиться с этим: используя OFFSET.
 +
 +В приведенном ниже SQL-запросе говорится: «Вернуть только 10 записей, начать с записи 16 (OFFSET 15 15)»:
 +<code>
 +$sql = "SELECT * FROM Orders LIMIT 10 OFFSET 15";
 +</code>
 +Вы также можете использовать более короткий синтаксис для достижения того же результата:
 +<code>
 +$sql = "SELECT * FROM Orders LIMIT 15, 10";
 +</code>
 +Обратите внимание, что при использовании запятой цифры меняются местами. 
 +
 +=====Ссылки и Примечания=====
 +[[https://www.w3schools.com/php/php_mysql_intro.asp|Оригинал статьи База данных PHP MySQL]]\\  
 +[[https://www.mysql.com/|Оригинальный сайт программы
 +MySQL]]
software/development/web/docs/learn/mariadb/вatabase_creation.1708874988.txt.gz · Последнее изменение: vladpolskiy