Obtention d'un seul enregistrement à partir d'une base de données à l'aide de MySQLi
La récupération de lignes uniques d'une base de données à l'aide de MySQLi est différente de l'itération sur une série d'enregistrements. Pour ce faire, nous utilisons les méthodes de récupération fournies par MySQLi, éliminant ainsi le besoin de boucle.
Récupérer une seule ligne en tant que tableau associatif
Si nous avons besoin de l'intégralité row en tant que tableau associatif, nous pouvons utiliser la syntaxe suivante :
$row = $result->fetch_assoc();
Cela attribue la première ligne de l'ensemble de résultats au $row variable, qui peut ensuite être utilisée pour accéder aux valeurs de colonnes individuelles.
Récupération d'une valeur unique
Pour les cas où une seule valeur est requise, nous pouvons utiliser :
// PHP 8.1+ $value = $result->fetch_column(); // Older PHP versions $value = $result->fetch_row()[0] ?? false;
Cette dernière syntaxe vérifie les valeurs nulles et renvoie false si elle est rencontrée.
Exemple Utilisation
Considérez l'exemple de requête pour récupérer la première ligne de la table "users" :
$sql = "SELECT * FROM users LIMIT 1"; $row = mysqli_query($conn, $sql)->fetch_assoc();
Maintenant, nous pouvons accéder à des valeurs spécifiques en utilisant $row['column_name'] , tels que :
$name = $row['name']; $email = $row['email'];
Utilisation de variables dans Requêtes
Lors de l'utilisation de variables dans des requêtes SQL, il est crucial d'utiliser des instructions préparées pour empêcher l'injection SQL. Par exemple, pour récupérer une ligne basée sur un identifiant spécifique :
// PHP 8.2+ $id = 123; $sql = "SELECT * FROM users WHERE id = ?"; $row = $conn->execute_query($sql, [$id])->fetch_assoc(); // Older PHP versions $id = 123; $stmt = $conn->prepare("SELECT * FROM users WHERE id = ?"); $stmt->bind_param("s", $id); $stmt->execute(); $row = $stmt->get_result()->fetch_assoc();
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!