Как выполнить SQL-запрос и получить результаты с помощью PHP?

Опубликовано: 10 Августа, 2022

В этой статье мы обсудим, как выполнить 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