Как выполнить SQL-запрос и получить результаты с помощью PHP?
В этой статье мы обсудим, как выполнить SQL-запрос и как получить его результат?
Мы можем выполнить запрос к базе данных, используя метод PHP mysqli_query().
Синтаксис: мы можем использовать метод mysqli_query() двумя способами:
- Объектно-ориентированный стиль
- Процедурный стиль
Параметры:
- соединение: требуется, чтобы указать используемое соединение.
- запрос: также требуется, чтобы указать запрос к базе данных.
- режим результата: необязательно использовать.
Возвращаемое значение: Для SELECT, SHOW, DESCRIBE или EXPLAIN возвращается объект mysqli_result. Для других успешных запросов он возвращает true. В противном случае при ошибке возвращается false .
Давайте разберемся, как мы можем выполнить SQL-запрос.
Выполнение SQL-запроса: мы поймем, как мы можем выполнить SQL-запрос, на примере. Мы создадим базу данных, таблицу, а затем вставим в нее некоторые значения.
Пример: Создайте базу данных и вставьте в нее некоторые значения.
PHP
<?php $servername = "localhost"; $username = "root"; $password = ""; $conn = new mysqli($servername, $username, $password); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "CREATE DATABASE gfgDB"; if ($conn->query($sql) === TRUE) { echo "Database has been created successfully"; } else { echo "Error creating database: " . $conn->error; } $conn->close();?> |
Выход:
Database has been created successfully
Создание таблицы:
PHP
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "gfgDB"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "CREATE TABLE Emp ( id INT(6) AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL )"; if ($conn->query($sql) === TRUE) { echo "Table has been created successfully"; } else { echo "Error creating table: " . $conn->error; } $conn->close();?> |
Выход:
Table has been created successfully
Вставка некоторых значений в таблицу «Emp»:
PHP
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "gfgDB"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error){ die("Connection failed: " . $conn->connect_error); } $sql = "INSERT INTO Emp (firstname, lastname) VALUES ("XYZ", "ABC")"; if ($conn->query($sql) === TRUE) { echo "New record created successfully"; }else{ echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close();?> |
Выход:
New record created successfully
Примечание. Поскольку мы использовали AUTO_INCREMENT, он автоматически вставит запись с «id = 1» и для каждой новой вставленной записи будет увеличивать «id» на единицу.
Получение результатов из базы данных :
PHP
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "gfgDB"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT id, firstname, lastname FROM Emp"; $result = $conn->query($sql); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; } } else { echo "No records has been found"; } $conn->close();?> |
Выход:
id: 1 - Name: XYZ ABC