Dans l'extension MySQLI de PHP, MySQLI_STMT :: ATTR_GET est une méthode utilisée pour obtenir la valeur de l'attribut de l'instruction préparée. Comprendre son type de valeur de retour et ses compétences en application pratique est crucial pour développer un code de fonctionnement de base de données efficace et stable. Cet article analysera le type de valeur de retour de mysqli_stmt :: att_get en détail, et le combine avec des scénarios d'utilisation communs pour vous aider à mieux maîtriser cette fonction.
mysqli_stmt :: att_get est une méthode de l'objet d'instruction de prétraitement mysqli, qui est utilisé pour obtenir la valeur actuelle d'un certain attribut. Sa définition est la suivante:
public int|bool mysqli_stmt::attr_get(int $attr)
où $ attar est un entier représentant l'identifiant d'attribut à récupérer.
Il y a deux principaux types de valeur renvoyés par mysqli_stmt :: att_get:
INT : Renvoie la valeur de l'attribut, tel que la taille maximale des paquets, le délai d'expiration, etc.
Boolean : indique si l'attribut est activé ou pris en charge.
Dans les applications réelles, la plupart des propriétés renvoient les entiers, mais selon les propriétés, ils peuvent également renvoyer des valeurs booléennes.
Certains attributs communs pris en charge par MySQLI pour ATTR_GET sont les suivants:
Constantes d'attribut | illustrer | Type de valeur de retour | Exemple de valeur de retour |
---|---|---|---|
Mysqli_stmt_attr_update_max_length | S'il faut permettre la mise à jour de la longueur maximale | bool | Vrai ou faux |
Mysqli_stmt_attr_cursor_type | Type de curseur | int | 0 (pas de curseur), 1 (en lecture seule) |
Mysqli_stmt_attr_prefetch_rows | Compte de lignes prélectées | int | 100 |
Mysqli_stmt_attr_read_only | Lire uniquement | bool | Vrai ou faux |
Voici un exemple réel de code PHP qui montre comment utiliser mysqli_stmt :: att_get et traiter la valeur de retour:
<?php
$mysqli = new mysqli("m66.net", "username", "password", "database");
if ($mysqli->connect_error) {
die("Échec de la connexion: " . $mysqli->connect_error);
}
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
if (!$stmt) {
die("La création de déclaration de prétraitement a échoué: " . $mysqli->error);
}
// Obtenez l'attribut de comptage de lignes préfabriqué
$prefetchRows = $stmt->attr_get(MYSQLI_STMT_ATTR_PREFETCH_ROWS);
echo "Nombre de lignes: " . $prefetchRows . PHP_EOL;
// Obtenez un type de curseur
$cursorType = $stmt->attr_get(MYSQLI_STMT_ATTR_CURSOR_TYPE);
echo "Type de curseur: " . $cursorType . PHP_EOL;
// Obtenez l'opportunité de permettre la mise à jour de la longueur maximale
$updateMaxLength = $stmt->attr_get(MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH);
echo "Autoriser les mises à jour de la longueur maximale: " . ($updateMaxLength ? 'Oui' : 'Non') . PHP_EOL;
$stmt->close();
$mysqli->close();
?>
Gestion des erreurs : ATTR_GET ne lance pas d'exception sur l'échec, mais la valeur renvoyée peut ne pas être comme prévu. Il est recommandé de combiner MySQLI_STMT :: Erreur pour surveiller l'état.
Sélection de propriété : toutes les propriétés ne peuvent pas être utilisées dans toutes les versions et pilotes MySQL. Il est recommandé de visualiser la liste des propriétés prises en charge par l'environnement actuel.
Considérations de performance : les frais généraux des attributs de lecture sont faibles, mais les appels fréquents à une acquisition d'attribut inutile affecteront également les performances et seront utilisés raisonnablement.
Le type de valeur de retour de mysqli_stmt :: att_get est principalement un entier ou un booléen, selon le type d'attribut obtenu. La maîtrise de la signification de ces valeurs et attributs de retour peut aider à rédiger un code d'accès à la base de données plus robuste. La combinaison des besoins de l'entreprise réels et l'utilisation de cette méthode peuvent raisonnablement améliorer la flexibilité et la maintenabilité du code.