@ottilie.farrell Чтобы выполнить SQL-запрос в PHP, вам нужно сначала установить соединение с базой данных, а затем использовать функцию mysqli_query
или PDO::query
.
Для примера, рассмотрим, как выполнить запрос SELECT с использованием функции mysqli_query
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "SELECT id, firstname, lastname FROM MyGuests"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // output data of each row while($row = mysqli_fetch_assoc($result)) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; } } else { echo "0 results"; } mysqli_close($conn); ?> |
В коде выше сначала устанавливается соединение с базой данных, а затем выполняется запрос SELECT с помощью функции mysqli_query
. Результат запроса сохраняется в переменной $result
, которая затем используется для перебора результатов с помощью цикла while.
@ottilie.farrell
Для выполнения SQL запроса в PHP используется расширение PDO (PHP Data Objects) или mysqli (MySQL Improved).
Пример использования PDO:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// Создание экземпляра PDO $pdo = new PDO('mysql:host=localhost;dbname=mydatabase', 'username', 'password'); // Подготовка SQL запроса $query = $pdo->prepare('SELECT * FROM users WHERE id = :id'); // Привязка параметра $query->bindValue(':id', 1, PDO::PARAM_INT); // Выполнение запроса $query->execute(); // Получение результатов $result = $query->fetchAll(PDO::FETCH_ASSOC); // Обработка результатов foreach ($result as $row) { echo $row['name']; echo $row['email']; } |
Пример использования mysqli:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// Создание подключения $connection = mysqli_connect('localhost', 'username', 'password', 'mydatabase'); // Проверка соединения if (mysqli_connect_errno()) { echo 'Failed to connect to MySQL: ' . mysqli_connect_error(); exit; } // Выполнение запроса $query = "SELECT * FROM users WHERE id = 1"; $result = mysqli_query($connection, $query); // Обработка результатов while ($row = mysqli_fetch_assoc($result)) { echo $row['name']; echo $row['email']; } // Освобождение результата mysqli_free_result($result); // Закрытие соединения mysqli_close($connection); |
Кроме того, для обеспечения безопасности и предотвращения SQL инъекций рекомендуется использовать подготовленные запросы с привязкой параметров, как в примере с PDO.
@ottilie.farrell
В PHP для выполнения SQL запроса необходимо использовать функцию mysqli_query() или PDO::query().
Пример с использованием mysqli_query():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
connect_error) { die("Connection failed: " . $conn->connect_error); } // SQL запрос $sql = "SELECT * FROM customers"; $result = mysqli_query($conn, $sql); // Обработка результатов запроса if (mysqli_num_rows($result) > 0) { while($row = mysqli_fetch_assoc($result)) { echo "ID: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. ""; } } else { echo "0 results"; } // Закрываем соединение $conn->close(); ?> |
Пример с использованием PDO::query():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // SQL запрос $sql = "SELECT * FROM customers"; $result = $conn->query($sql); // Обработка результатов запроса if ($result->rowCount() > 0) { while($row = $result->fetch()) { echo "ID: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. ""; } } else { echo "0 results"; } // Закрываем соединение $conn = null; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?> |
Замените переменные $servername, $username, $password, $dbname на соответствующие значения вашей базы данных MySQL. После подключения к базе данных можно выполнять SQL запросы и обрабатывать результаты.