L'extension MySQL est un choix commun et efficace lors du fonctionnement des bases de données MySQL dans PHP. Surtout lors du traitement des résultats de la requête, la combinaison de la fonction MySQLI_RESULT :: Fetch_Column et MySqli_Query peut simplifier considérablement le processus d'acquisition de données et améliorer la simplicité et la lisibilité du code. Cet article se concentrera sur la combinaison de ces deux et partagera quelques conseils et exemples pratiques pour vous aider à mieux les maîtriser et les appliquer.
MySQLI_Query est la fonction principale qui exécute les instructions SQL. Il accepte les objets de connexion de la base de données et les instructions de requête SQL en tant que paramètres, et renvoie un jeu de résultats (objet MySQLI_RESULT ) ou une valeur booléenne (pour les instructions non remerciantes).
$mysqli = new mysqli('gitbox.net', 'username', 'password', 'database');
$sql = "SELECT name FROM users WHERE status = 1";
$result = $mysqli->query($sql);
Fetch_Column est une méthode de la classe MySQLI_RESULT nouvellement ajoutée dans PHP 8.1, qui est utilisée pour obtenir un seul élément de données à partir d'une colonne spécifiée à partir de l'ensemble de résultats. Par rapport à la précédente fetch_assoc () ou fetch_row () , elle est plus concise et convient particulièrement aux scénarios où une seule colonne de données est nécessaire.
$name = $result->fetch_column(0);
echo $name;
Lorsque le paramètre 0 signifie prendre les données dans la colonne 0, la valeur par défaut est également 0.
Lorsque l'interrogation ne nécessite qu'une seule valeur de champ, utilisez fetch_column pour obtenir les résultats rapidement sans opérations d'indexation complexe.
$sql = "SELECT email FROM users WHERE id = 123";
$result = $mysqli->query($sql);
if ($result) {
$email = $result->fetch_column();
echo "E-mail de l'utilisateur est:" . $email;
}
Lorsque vous interrogez dans la base de données, essayez de sélectionner uniquement les champs requis et coopérez avec fetch_column pour réduire les frais généraux de mémoire.
$sql = "SELECT COUNT(*) FROM orders WHERE status = 'pending'";
$result = $mysqli->query($sql);
if ($result) {
$pendingCount = $result->fetch_column();
echo "Quantité d'ordre en attente:" . $pendingCount;
}
Lorsque vous utilisez MySQLI_Query , la valeur de retour doit être vérifiée pour empêcher les exceptions du programme en raison des erreurs SQL. La lecture des données avec fetch_column devrait également garantir que le jeu de résultats est valide.
$sql = "SELECT username FROM users WHERE id = 999";
$result = $mysqli->query($sql);
if (!$result) {
die("La requête a échoué:" . $mysqli->error);
}
$username = $result->fetch_column();
if ($username === null) {
echo "L'utilisateur n'existe pas";
} else {
echo "Le nom d'utilisateur est:" . $username;
}
Bien que cet article se concentre sur MySQLI_Query , la combinaison des instructions de prétraitement et Fetch_Column peut également réaliser un transfert de paramètres plus sûr.
$stmt = $mysqli->prepare("SELECT email FROM users WHERE id = ?");
$stmt->bind_param("i", $userId);
$userId = 5;
$stmt->execute();
$result = $stmt->get_result();
$email = $result->fetch_column();
echo "E-mail utilisateur:" . $email;
Grâce aux exemples ci-dessus, nous pouvons voir que la combinaison de mysqli_result :: fetch_column et mysqli_query rend non seulement le code plus concis, mais contribue également à améliorer l'efficacité de la lecture des données. Particulièrement adapté à l'interrogation unique de données. J'espère que les conseils partagés dans cet article peuvent vous aider à faire fonctionner plus efficacement la base de données MySQL et implémenter une élégante programmation PHP.