Maison  >  Article  >  développement back-end  >  Comment modifier la base de données avec l'instruction php mysqli

Comment modifier la base de données avec l'instruction php mysqli

PHPz
PHPzoriginal
2023-03-22 11:24:351581parcourir

PHP est un langage de script open source côté serveur populaire qui permet l'interactivité et la dynamique sur le Web. Lors du traitement des opérations de base de données, PHP fournit des fonctions d'opération riches via la bibliothèque d'extension mysqli. Dans cet article, nous explorerons comment modifier les données d'une base de données à l'aide de la bibliothèque d'extension mysqli en PHP.

1. Introduction à mysqli

Différente de l'extension mysql de PHP, l'interface de l'extension mysqli prend en charge MySQL 4.1 et supérieur. L'extension mysqli est l'extension par défaut dans PHP 5. À partir de PHP 7, l'extension mysql est obsolète. L'extension mysqli offre de meilleures performances, plus de fonctionnalités et une meilleure sécurité.

2. Déclaration de modification Mysqli

En PHP, l'instruction de modification mysqli doit être implémentée via la fonction mysqli_query(). Lors de l'utilisation de cette fonction, vous devez transmettre deux paramètres : l'objet de connexion et l'instruction SQL à exécuter. Un exemple est le suivant :

<?php
    // 连接数据库
    $mysqli = new mysqli(&#39;localhost&#39;, &#39;username&#39;, &#39;password&#39;, &#39;dbname&#39;);

    // 检测连接是否成功
    if ($mysqli->connect_errno) {
        die('连接数据库失败:' . $mysqli->connect_error);
    }

    // 执行SQL语句
    $sql = "UPDATE users SET username='new_username' WHERE id=1";
    if ($mysqli->query($sql) === true) {
        echo "修改成功";
    } else {
        echo "修改失败";
    }

    // 关闭数据库连接
    $mysqli->close();
?>

Instructions :

Tout d'abord, créez un objet de connexion à l'aide de la classe mysqli. Si la connexion échoue, le programme lèvera une exception.

Ensuite, construisez l'instruction SQL à exécuter. Ici, nous utilisons l'instruction UPDATE pour mettre à jour le nom d'utilisateur de l'utilisateur avec l'identifiant 1 dans le tableau.

Ensuite, appelez la fonction mysqli_query() pour exécuter l'instruction SQL. La fonction retournera vrai si la requête réussit, sinon elle retournera faux.

Enfin, fermez la connexion à la base de données.

3. Empêcher l'injection SQL

Lors de l'utilisation de l'extension mysqli, nous devons prêter attention au problème des attaques par injection SQL. L'attaque par injection SQL est une attaque réseau ciblant les applications de base de données, utilisée pour inciter l'application à effectuer les actions attendues par l'attaquant en injectant du code SQL malveillant. Pour empêcher l'injection SQL, nous pouvons prendre les mesures suivantes :

1. Utilisez la fonction mysqli_prepare()

la fonction mysqli_prepare() pour préparer une instruction SQL et renvoyer un objet de traitement d'instruction. Il exécute une instruction SQL préparée, nous permettant d'effectuer une liaison entre l'envoi de la requête et la réception de la réponse.

L'exemple est le suivant :

<?php
    // 连接数据库
    $mysqli = new mysqli(&#39;localhost&#39;, &#39;username&#39;, &#39;password&#39;, &#39;dbname&#39;);

    // 检测连接是否成功
    if ($mysqli->connect_errno) {
        die('连接数据库失败:' . $mysqli->connect_error);
    }

    // 准备SQL语句
    $stmt = $mysqli->prepare("UPDATE users SET username=? WHERE id=?");

    // 绑定参数
    $username = 'new_username';
    $id = 1;
    $stmt->bind_param("si", $username, $id);

    // 执行SQL语句
    if ($stmt->execute()) {
        echo "修改成功";
    } else {
        echo "修改失败";
    }

    // 关闭数据库连接
    $mysqli->close();
?>

Dans l'exemple ci-dessus, nous utilisons la fonction mysqli_prepare() pour préparer une instruction SQL, puis lions les paramètres à l'instruction, et enfin appelons la méthode execute() pour exécuter l'instruction SQL. .

2. Utilisez la fonction mysqli_real_escape_string()

La fonction mysqli_real_escape_string() peut échapper aux caractères spéciaux dans une chaîne pour éviter les attaques par injection SQL.

L'exemple est le suivant :

<?php
    // 连接数据库
    $mysqli = new mysqli(&#39;localhost&#39;, &#39;username&#39;, &#39;password&#39;, &#39;dbname&#39;);

    // 检测连接是否成功
    if ($mysqli->connect_errno) {
        die('连接数据库失败:' . $mysqli->connect_error);
    }

    // 处理传递过来的参数
    $username = mysqli_real_escape_string($mysqli, $_POST['username']);
    $id = mysqli_real_escape_string($mysqli, $_POST['id']);

    // 构建SQL语句
    $sql = "UPDATE users SET username='$username' WHERE id='$id'";

    // 执行SQL语句
    if ($mysqli->query($sql) === true) {
        echo "修改成功";
    } else {
        echo "修改失败";
    }

    // 关闭数据库连接
    $mysqli->close();
?>

Dans l'exemple ci-dessus, nous utilisons d'abord la fonction mysqli_real_escape_string() pour échapper aux paramètres passés, puis construisons l'instruction SQL.

4. Résumé

Dans cet article, nous avons présenté comment utiliser la bibliothèque d'extension mysqli en PHP pour modifier les instructions de base de données. Nous avons exploré comment utiliser la fonction mysqli_query() pour exécuter des instructions SQL et expliqué comment empêcher les attaques par injection SQL. J'espère que cet article vous sera utile.

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!

Déclaration:
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