Position actuelle: Accueil> Derniers articles> Comment analyser les informations de contrainte des champs de base de données à partir de la valeur de retour de mysqli_result :: fetch_field?

Comment analyser les informations de contrainte des champs de base de données à partir de la valeur de retour de mysqli_result :: fetch_field?

gitbox 2025-09-12
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Le début de l&#39;article n&#39;a rien à voir avec le texte principal PHP Exemple de code</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"这是开头de无关Exemple de code。"</span></span><span>;
</span><span><span class="hljs-variable">$testArray</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$testArray</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Démarrer le texte</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h1>Comment mysqli_result::fetch_field La valeur de retour analyse les informations de contrainte du champ de la base de données?</h1>"</span></span><span>;

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>Utilisé PHP de <code>mysqli
';; écho "

Ici, Fetch_field renvoie un objet STDClass , qui contient diverses informations sur le champ:

"
; Echo "
  • Nom : Nom du champ
  • Orgname : Nom de champ d'origine
  • Table : Table à laquelle le champ appartient
  • à l'orgable : Nom de la table d'origine
  • Max_Length : Field Flay Longueur
  • Flags : Indicateur de champ (Utilisé pour juger les informations de contrainte)
  • Type : Type de champ (comme MySQLI_TYPE_VAR_STRING )
"
;
écho "

2. Analyser les informations de contrainte

"
; écho "

L'attribut le plus critique est les drapeaux , qui est un entier représentant une série de drapeaux binaires du champ. Les contraintes de champ peuvent être jugées par des opérations bit:

"
; echo "
  • not_null_flag : si le champ n'est pas autorisé null
  • pri_key_flag : si le champ est la clé principale
  • auto_increment_flag : si le champ est auto-augmenté
  • unique_key_flag : si le champ est unique
"
;
écho "

Par exemple, pour déterminer si un champ n'autorise pas null:

"
; écho '
$ field = $ result-> fetch_field ();
if ($ field-> Flags & mysqli_not_null_flag) {
    Echo "Field &#39;
", $ field -> name, " ' null n'est pas autorisé"; } else {echo "field ' ", $ field -> name, " ' null est autorisé"; } ' ; écho "

De même, il peut être jugé s'il s'agit d'une clé principale ou d'une auto-incitation:

"
; écho '
if ($ field-> Flags & mysqli_pri_key_flag) {
    Echo "Field est la clé principale";
}
if ($ field-> Flags & mysqli_auto_increment_flag) {
    Echo "Field est auto-croissant";
}
'
;;
écho "

3. Résumé

"
; écho "

Grâce à l'objet renvoyé par mysqli_result :: fetch_field , nous pouvons facilement obtenir des informations de base telles que le nom du champ, le type et la longueur. Grâce à l'opération de bit de l'attribut Flags , nous pouvons également analyser les informations de contrainte de champ, telles que non pas la clé nul, l'unicité, la logique liée à la structure de la structure dans le code PHP, etc.

"
; " ; ?> <?php // Exemple de code PHP qui n'est pas lié à la fin de l'article $ piodermesage = "Ceci est un exemple de code non pertinent à la fin." ; pour ( $ i = 0 ; $ i < 3 ; $ i ++) { echo $ de pied de pied . "Lancer" . ( $ i + 1 ). "Afficher l'heure." ; } ?>