Maison > développement back-end > Problème PHP > PHP exécute les instructions de requête de base de données

PHP exécute les instructions de requête de base de données

WBOY
Libérer: 2023-05-06 18:08:08
original
822 Les gens l'ont consulté

PHP est un langage de programmation côté serveur très populaire avec une riche API d'exploitation de base de données intégrée. Pour les développeurs, être capable d’utiliser habilement PHP pour faire fonctionner des bases de données est une compétence très importante. Dans cet article, nous nous concentrerons sur la façon d'exécuter des instructions de requête de base de données en PHP.

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

La connexion à la base de données en PHP utilise généralement mysqli ou PDO. Voici un exemple de code permettant d'utiliser mysqli pour se connecter à une base de données MySQL :

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);

// 检查连接是否成功
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
Copier après la connexion

2. Exécutez l'instruction de requête

Après une connexion réussie à la base de données, nous pouvons commencer à exécuter l'instruction de requête SQL. Voici un exemple de code pour exécuter une instruction de requête à l'aide de mysqli :

<?php
$sql = "SELECT id, name, email FROM users";
$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"]. "<br>";
    }
} else {
    echo "0 results";
}

mysqli_close($conn);
?>
Copier après la connexion

Dans le code ci-dessus, nous utilisons l'instruction SELECT pour lire les données de la base de données et stocker les données dans un tableau associatif via la fonction mysqli_fetch_assoc(). Enfin, les résultats de la requête sont générés via un parcours de boucle while.

3. Prévenir les attaques par injection SQL

Lors de l'exécution d'instructions de requête de base de données, une attention particulière doit être accordée aux attaques par injection SQL. Si aucune mesure de protection n'est prise, les utilisateurs malveillants peuvent effectuer des opérations illégales en fusionnant des instructions SQL malveillantes, telles que la falsification, la suppression de données, etc. Par conséquent, dans le développement réel, les instructions préparées doivent être utilisées pour précompiler les instructions SQL afin d'éviter les attaques par injection SQL. Voici un exemple de code qui utilise des instructions préparées par MySQLi pour exécuter des instructions de requête :

<?php
$stmt = $conn->prepare("SELECT id, name, email FROM users WHERE email= ? ");
$email = "john@example.com";
$stmt->bind_param("s", $email);
$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";
}

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

Dans le code ci-dessus, nous utilisons d'abord la fonction prepare() pour précompiler l'instruction SQL et lions les conditions de requête à l'instruction SQL via le bind_param. () méthode. Enfin, obtenez les résultats de la requête via la fonction get_result() et obtenez les données à l'aide de la méthode fetch_assoc().

Résumé

Dans cet article, nous avons présenté comment utiliser mysqli et PDO pour se connecter à la base de données en PHP et exécuter des instructions de requête pour empêcher les attaques par injection SQL. En apprenant et en maîtrisant ces compétences, vous serez en mesure d'exploiter la base de données avec plus d'habileté dans le développement PHP et d'améliorer l'efficacité et la sécurité du développement.

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