MySQL
Обработка результатов запросов
Выполнение запросов, обработка результатов и получение данных
Стиль ООП
Описываем нужный SQL-запрос и помещаем его в переменной $sql.
Затем выполняем запрос к базе данных с помощью метода query объекта mysqli.
Если ошибок нет — получим объект mysqli_result, который сохраняется в переменной $result.
Если же в SQL-запросе присутствуют ошибки — метод query вернет FALSE,
тогда с помощью оператора throw генерируем исключение, которое обрабатываем с помощью Exception.
// устанавливаем соединение с базой данных newDB (создаем экземпляр класса new mysqli())
$conn = new mysqli($servername, $username, $password, $dbname);
// SQL-запрос
$sql = "SELECT * FROM users ";
// запрос к базе данных
$result = $conn->query($sql);
if ($result === FALSE) {
throw new \Exception('Ошибка в SQL-запросе!');
}else{
echo "Выполнено: <br><br>";
}
Получение данных
Получение данных одной строки в виде ассоциативного массива:
$entry = $result->fetch_assoc();
Получение данных одной строки в виде индексированного массива:
$entry = $result -> fetch_row();
Получение данных одной строки в виде объекта:
$entry = $result->fetch_object();
Получение всех строк:
$entries = array();
while ($entry = $result->fetch_object()) {
$entries[] = $entry;
}
Получение всех строк в виде ассоциативного массива:
$entries = $result->fetch_all(MYSQLI_ASSOC);
Если результат не содержит количество результатов выборки - num_rows, выведем: "Нет результатов".
Выражение $result->$num_rows - получает число рядов в результирующей выборке
if (!$result->num_rows) {
echo "Нет результатов: <br><br>";
}
Процедурный стиль
Описываем нужный SQL-запрос и помещаем его в переменной $sql.
Затем выполняем запрос к базе данных с помощью функции mysqli_query($conn, $sql) и помещаем результат в переменную $result
// устанавливаем соединение с базой данных newDB
$conn = mysqli_connect($servername, $username, $password, $dbname);
// SQL-запрос
$sql = "SELECT * FROM users";
// запрос к базе данных
$result = mysqli_query($conn, $sql);
Получение данных
Эта функция возвращает одну запись выборки в виде индексированного массива:
$row = mysqli_fetch_row($result);
Эта функция возвращает одну запись выборки в виде ассоциативного массива:
$row = mysqli_fetch_assoc($result);
Эта функция в зависимости от параметров может вернуть либо индексированный массив,
либо ассоциативный массив, либо массив, содержащий и индексы и строковые ключи:
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
Получение всего результата.
Эта функция возвращает двухмерный массив, содержащий все записи:
$row = mysqli_fetch_all($result, MYSQLI_ASSOC);
Если запрос к базе данных - выполнен, тогда выведем сообщение "Выполнено".
В противном случае выведем сообщение "Ошибка" и выведем информацию об ошибке mysqli_error($conn):
if(mysqli_query($conn, $sql)) {
echo "Выполнено";
}else{
echo "Ошибка: <br><br>" . mysqli_error($conn);
}
Пример
Выбираем данные из таблицы workers (Стиль ООП).
файл index.php
-- файл index.php --
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "newDB";
// Устанавливаем соединение с сервером MySQL:
$conn = new ($servername, $username, $password, $dbname);
// Проверка соединения:
if ($conn -> ){
die ("Не удалось подключиться: " . $conn -> );
}
echo "Соединение успешно установлено";
// ЗАПРОСЫ
//1. Выбрать значения всех полей из таблицы workers:
// $sql = "SELECT * FROM workers ";
//2. Выбрать значения всех полей из таблицы workers, где id = 2:
// $sql = "SELECT * FROM workers WHERE id = 2";
//3. Выбрать значение поля id из таблицы workers, где значение поля name = 'Иван':
// $sql = "SELECT id FROM workers WHERE name = 'Иван'";
//4. Выбрать значение поля name из таблицы workers, где id > 5:
// $sql = "SELECT name FROM workers WHERE id > 5";
//5. Выбрать значения всех полей из таблицы workers,
// где значение поля name = 'Сидор' И значение поля age > 30:
// $sql = "SELECT id, name, surname, age FROM workers WHERE name = 'Сидор' AND age > 30";
//6. Иногда нужно указать много значений:
$sql ="SELECT name FROM workers WHERE id=2 AND id=5 AND id=10";
// Выполнение запроса
$result = $conn-> ($sql);
// Проверка выполнения запросов
if ($result === FALSE) {
throw new \ ('Ошибка в SQL-запросе!');
}else{
echo "Выполнено: <br><br>";
}
// Вывод полученых данных
// получить все строки в виде ассоциативного массива
$entries = $result -> ( );
($entries);
// num_rows содержит количество результатов выборки
if (!$result -> num_rows) {
echo "Нет результатов: <br><br>";
}
// закрываем соединение
$conn-> ();
?>
Наверх Наверх