Maison  >  Article  >  développement back-end  >  Comment utiliser mysql_query pour les requêtes de base de données dans le développement du langage PHP ?

Comment utiliser mysql_query pour les requêtes de base de données dans le développement du langage PHP ?

王林
王林original
2023-06-11 08:44:262049parcourir

Dans le développement du langage PHP, il est très courant d'utiliser la base de données MySQL, et la fonction mysql_query est une méthode permettant à PHP de se connecter à la base de données MySQL, et c'est également l'une des méthodes de base pour l'interrogation de données. Dans cet article, nous explorerons comment utiliser la fonction mysql_query pour les requêtes de base de données.

1. Comprendre la fonction mysql_query

mysql_query est une fonction en PHP utilisée pour envoyer des requêtes au serveur MySQL. Elle est généralement utilisée pour effectuer des opérations de modification telles que les instructions de requête INSERT, UPDATE, DELETE et SELECT.

La structure syntaxique de base est la suivante :

mysql_query(string $query , resource $connection = ?): mixed

Parmi eux, "$query" est l'instruction de requête à exécuter, qui doit être une instruction SQL valide "$connection" est l'identifiant de connexion à la base de données MySQL, et la valeur par défaut est la connexion la plus récemment ouverte.

Si l'exécution réussit, un identifiant de ressource MySQL sera renvoyé. Sinon, false sera renvoyé, ce qui signifie que l'exécution de la requête échoue.

2. Utilisez mysql_query pour interroger

Avant d'utiliser mysql_query pour interroger, vous devez d'abord vous connecter à la base de données. Vous pouvez vous connecter à la base de données en utilisant mysqli_connect ou PDO.

L'exemple de code pour se connecter à la base de données MySQL est le suivant :

// 服务器地址
$db_host = "localhost";
// 数据库用户名
$db_user = "root";
// 数据库密码
$db_password = "123456";
// 数据库名
$db_name = "mydatabase";

// 连接数据库
$link = mysql_connect($db_host, $db_user, $db_password) or die("连接失败!");

// 选择数据库
mysql_select_db($db_name, $link);

Ensuite, nous pouvons utiliser la fonction mysql_query pour interroger. Par exemple, interrogez toutes les informations sur les étudiants dans une table étudiant :

// 查询所有学生信息
$sql = "SELECT * FROM student";
$result = mysql_query($sql);

// 遍历结果集并输出每个学生的信息
while ($row = mysql_fetch_assoc($result)) { 
    echo '学生ID:'.$row['id'].',姓名:'.$row['name'].',年龄:'.$row['age'].'<br>'; 
}

Dans le code ci-dessus, "$sql" est l'instruction de requête à exécuter. Dans cet exemple, il s'agit d'interroger tous les enregistrements de la table "étudiant" ; $result" est l'exécution. L'ensemble de résultats renvoyé par la requête. En même temps, cet ensemble de résultats peut être parcouru via la fonction mysql_fetch_assoc. La fonction mysql_fetch_assoc renvoie la ligne de résultat actuelle sous forme de tableau associatif et pointe le pointeur vers la ligne suivante. Par conséquent, tous les jeux de résultats peuvent être parcourus via la boucle while.

3. Évitez l'injection SQL

Lorsque vous utilisez la fonction mysql_query pour la requête de données, vous devez faire attention pour éviter les problèmes d'injection SQL. L'injection SQL fait référence à une méthode d'attaque dans laquelle les pirates utilisent des instructions SQL dans un programme pour exécuter des instructions SQL illégales ou obtenir des données sensibles en saisissant certaines commandes et caractères spéciaux. Afin de garantir la sécurité de l'application, les paramètres d'entrée doivent être prétraités lors de l'exécution de requêtes SQL.

Voici plusieurs méthodes principales pour éviter l'injection SQL :

1. Utilisez la fonction PHP addlashes

La fonction addlashes est de supprimer les guillemets simples ('), les guillemets doubles (") et les barres obliques inverses () dans le texte. chaîne Échapper aux caractères spéciaux pour éviter les attaques par injection SQL.

Exemple d'utilisation :

// 防SQL注入处理函数
function filter($text) {
    if(!get_magic_quotes_gpc()) {
        $text = addslashes($text);    // 对单引号、双引号、反斜杠等进行转义处理
    }
    return $text;
}

// 读取提交的用户名和密码信息
$username = filter($_POST['username']);
$password = filter($_POST['password']);

// 查询用户信息
$sql = "SELECT * FROM user WHERE username='$username' AND password='$password'";
$result = mysql_query($sql);

2. Utilisez la fonction d'extension PHP mysqli

mysqli est un module de la bibliothèque d'extension PHP, qui fournit les fonctions d'interface API fournies par MySQL et prend en charge la méthode de prétraitement. exécutez des instructions de requête SQL.

L'exemple de code pour interroger à l'aide de mysqli est le suivant :

// 预处理查询
$stmt = mysqli_prepare($link, "SELECT * FROM user WHERE username=? AND password=?");
mysqli_stmt_bind_param($stmt, "ss", $username, $password);
mysqli_stmt_execute($stmt);

// 处理结果集
$result = mysqli_stmt_get_result($stmt);

// 遍历结果集并输出每行信息
while ($row = mysqli_fetch_assoc($result)) { 
    echo "用户名:".$row['username'].",密码:".$row['password']."<br>"; 
}

// 关闭会话句柄
mysqli_stmt_close($stmt);

3. Utilisez la fonction d'extension PHP PDO

PDO est une extension en PHP pour exploiter des bases de données. un ensemble complet de méthodes de prétraitement pour éviter efficacement les attaques par injection SQL.

L'exemple de code pour utiliser PDO pour interroger est le suivant :

// 连接数据库
$db_host = "localhost";
$db_name = "mydatabase";
$db_user = "root";
$db_password = "123456";
$dsn = "mysql:host={$db_host};dbname={$db_name}";
$conn = new PDO($dsn, $db_user, $db_password);

// 预处理查询
$stmt = $conn->prepare("SELECT * FROM user WHERE username=:username AND password=:password");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();

// 处理结果集
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 遍历结果集并输出每行信息
foreach ($result as $row) {
    echo "用户名:".$row['username'].",密码:".$row['password']."<br>"; 
}

// 关闭连接
$conn = null;

4. Résumé

Cet article présente l'utilisation de la fonction mysql_query pour les méthodes de requête de base de données. propose également quelques méthodes pour éviter les attaques par injection SQL. Pour les débutants, vous pouvez apprendre et pratiquer grâce aux méthodes ci-dessus, pour les développeurs qui maîtrisent déjà ces connaissances, vous pouvez dans tous les cas acquérir d'autres compétences avancées en matière d'utilisation de PHP et MySQL. la sécurité des programmes et l'exactitude des données sont l'une des questions importantes que les développeurs doivent toujours prendre en compte.

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