Maison  >  Article  >  développement back-end  >  Comment interroger une valeur dans un champ en php

Comment interroger une valeur dans un champ en php

PHPz
PHPzoriginal
2023-03-31 09:05:06647parcourir

Dans les programmes PHP, nous devons fréquemment interroger les données de la base de données. Parmi elles, une opération courante consiste à demander si un champ contient une valeur spécifique. Pour ce faire, nous pouvons utiliser la condition LIKE dans l'instruction SQL. Ci-dessous, un exemple de code détaillé sera donné.

Supposons que nous ayons une table appelée utilisateurs avec un champ appelé loisirs. Nous devons demander si le champ contient la chaîne "PHP". Nous pouvons utiliser l'instruction SQL suivante :

SELECT * FROM users WHERE hobbies LIKE '%PHP%';

En PHP, nous utiliserons l'extension PDO pour nous connecter à la base de données et exécuter cette instruction SQL. Voici un exemple de code pour se connecter à la base de données à l'aide de PDO :

// 1. 配置数据库信息
$dbhost = 'localhost';
$dbname = 'testdb';
$dbuser = 'root';
$dbpassword = '';

// 2. 连接到数据库
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpassword);

// 3. 设置错误处理方式为异常
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// 4. 准备 SQL 语句
$sql = "SELECT * FROM users WHERE hobbies LIKE '%PHP%'";

// 5. 执行 SQL 语句并获取结果集
$stmt = $dbh->query($sql);
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 6. 处理结果集
foreach ($results as $row) {
    echo $row['username'] . ' likes PHP. <br>';
}

// 7. 关闭数据库连接
$dbh = null;

Dans le code ci-dessus, nous configurons d'abord les informations de la base de données, puis utilisons PDO pour nous connecter à la base de données. Ensuite, définissez le mode de gestion des erreurs de PDO sur exception afin que nous puissions déboguer le programme. Ensuite, utilisez les instructions SQL pour interroger la base de données et obtenir le jeu de résultats. Enfin, utilisez une boucle foreach pour traiter le jeu de résultats et afficher le nom d'utilisateur.

Il convient de noter que lors de l'utilisation de PDO pour interroger la base de données, nous devons utiliser des requêtes paramétrées pour empêcher les attaques par injection SQL. Voici l'exemple de code utilisant une requête paramétrée :

// 搜索的字符串
$search = 'PHP';

// 1. 配置数据库信息
$dbhost = 'localhost';
$dbname = 'testdb';
$dbuser = 'root';
$dbpassword = '';

// 2. 连接到数据库
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpassword);

// 3. 设置错误处理方式为异常
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// 4. 准备 SQL 语句
$sql = "SELECT * FROM users WHERE hobbies LIKE :search";
$stmt = $dbh->prepare($sql);

// 5. 绑定参数并执行 SQL 语句
$searchParam = '%' . $search . '%';
$stmt->bindParam(':search', $searchParam);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 6. 处理结果集
foreach ($results as $row) {
    echo $row['username'] . ' likes PHP. <br>';
}

// 7. 关闭数据库连接
$dbh = null;

Dans le code ci-dessus, nous utilisons une requête paramétrée et des paramètres liés pour empêcher les attaques par injection SQL. Préparez l'instruction SQL via la méthode prepare() de PDO et liez les variables aux paramètres. Lors de l'exécution d'une instruction SQL, il suffit de transmettre la valeur de la variable paramètre pour interroger la base de données en toute sécurité.

En bref, en utilisant la condition LIKE dans l'instruction SQL et l'extension PDO, nous pouvons facilement interroger une valeur dans un champ. Dans le même temps, afin de garantir la sécurité du programme, nous devons toujours utiliser des requêtes paramétrées pour empêcher les attaques par injection SQL.

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