Maison > développement back-end > Problème PHP > Comment exécuter une requête en php

Comment exécuter une requête en php

WBOY
Libérer: 2023-05-06 15:07:07
original
714 Les gens l'ont consulté

En PHP, la requête est une opération très fréquemment utilisée pour obtenir ou vérifier les données requises dans la base de données. Il s'agit d'une base importante car elle nous permet d'accéder au contenu de la base de données.

Dans cet article, nous explorerons comment exécuter des requêtes en PHP pour rendre nos applications Web plus puissantes.

1. Connectez-vous à la base de données

Avant de démarrer la requête, nous devons établir une connexion à la base de données. Vous pouvez utiliser l'extension PDO (PHP Data Objects) ou mysqli.

Utilisation de PDO :

$host = 'localhost';
$dbname = 'mydatabase';
$user = 'myusername';
$pass = 'mypassword';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    //设置错误模式为异常处理
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully!";
} catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
Copier après la connexion

Utilisation de mysqli :

$host = 'localhost';
$dbname = 'mydatabase';
$user = 'myusername';
$pass = 'mypassword';

// 创建连接
$conn = new mysqli($host, $user, $pass, $dbname);

// 检测连接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully!";
Copier après la connexion

2. Exécution de la requête

Une fois la connexion à la base de données établie, nous pouvons exécuter la requête. Voici un exemple de la façon d'effectuer une requête SELECT en utilisant PDO et mysqli :

Utilisation de PDO :

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$sql = "SELECT * FROM mytable";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 输出结果
print_r($result);
Copier après la connexion

Utilisation de mysqli :

$conn = new mysqli($host, $user, $pass, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM mytable";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

$conn->close();
Copier après la connexion

3. Paramètres de liaison

Lors de l'exécution d'une requête, nous souhaitons généralement que la requête ne renvoie que des résultats. qui correspondent à certains critères. Dans ce cas, nous devons utiliser des paramètres de liaison pour séparer les conditions de requête de l'instruction de requête.

Voici un exemple de liaison de paramètres utilisant PDO et mysqli :

Utilisation de PDO :

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$sql = "SELECT * FROM mytable WHERE name = :name";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 输出结果
print_r($result);
Copier après la connexion

Utilisation de mysqli :

$conn = new mysqli($host, $user, $pass, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$name = "John Doe";

$sql = "SELECT * FROM mytable WHERE name = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $name);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

$conn->close();
Copier après la connexion
Copier après la connexion

4. Requêtes précompilées

Les requêtes précompilées sont un moyen d'optimiser les requêtes de base de données qui nous permettent d'utiliser des espaces réservés dans les requêtes pour éviter les attaques par injection SQL.

Voici un exemple de requête précompilée utilisant PDO et mysqli :

Utilisation de PDO :

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$sql = "SELECT * FROM mytable WHERE name = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$name]);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 输出结果
print_r($result);
Copier après la connexion

Utilisation de mysqli :

$conn = new mysqli($host, $user, $pass, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$name = "John Doe";

$sql = "SELECT * FROM mytable WHERE name = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $name);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

$conn->close();
Copier après la connexion
Copier après la connexion

5. Traitement de l'ensemble de résultats

Une fois la requête exécutée, nous devons traiter l'ensemble de résultats, ce qui signifie les formater dans un format approprié pour une utilisation dans les applications Web, telles que des tableaux ou des chaînes JSON.

Voici un exemple de traitement d'un ensemble de résultats :

Utilisation de PDO :

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$sql = "SELECT * FROM mytable";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 格式化为JSON字符串
echo json_encode($result);
Copier après la connexion

Utilisation de mysqli :

$conn = new mysqli($host, $user, $pass, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM mytable";
$result = $conn->query($sql);

// 格式化为数组
$data = array();
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $data[] = $row;
    }
}

// 格式化为JSON字符串
echo json_encode($data);

$conn->close();
Copier après la connexion

Résumé

L'exécution de requêtes en PHP est une base importante et fréquemment utilisée dans les applications Web. Nous pouvons utiliser l'extension PDO ou mysqli pour établir une connexion à la base de données et utiliser la requête SELECT pour récupérer les données dont nous avons besoin. Lorsque les conditions de requête nécessitent des paramètres liés, nous devons utiliser des paramètres liés et des requêtes précompilées pour garantir la sécurité des requêtes. Enfin, nous devons traiter les ensembles de résultats et les formater dans le format de données d'application Web approprié.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal