<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Cette partie du code n'a rien à voir avec le contenu du texte,Par exemple, des fins uniquement</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Commencez à exécuter le script...\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/*
Un décalage de type rencontré?jeter un coup d'œil mysqli_result::$lengths À quels types de problèmes doivent être prêts à l'attention lors de l'utilisation
*/</span>
<span class="hljs-comment">/**
* mysqli_result::$lengths est un tableau,Contient la longueur des données correspondant à chaque champ dans l'ensemble de résultats。
* Faites attention lorsque vous utilisez,Types et scénarios d'utilisation de ces valeurs de longueur。
*/</span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"user"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"testdb"</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Échec de la connexion: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"SELECT id, name, description FROM products"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> </span><span><span class="hljs-keyword">instanceof</span></span><span> mysqli_result) {
</span><span><span class="hljs-comment">// $lengths est un tableau d'entiers,L'élément correspond à la longueur d'octet de chaque champ</span></span><span>
</span><span><span class="hljs-variable">$lengths</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>->lengths;
</span><span><span class="hljs-comment">// Exemple:Obtenez le tableau de longueur et imprimez</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Type de tableau de longueur de champ: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">gettype</span></span><span>(</span><span><span class="hljs-variable">$lengths</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Contenu de la longueur du champ:\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$lengths</span></span><span>);
<span class="hljs-comment">/*
* Points clés pour les questions de type:
* 1. $lengths est un tableau,Et chaque élément est un entier(int)。
* 2. Ces longueurs sont des octets,Remarque la fonction de longueur de chaîne strlen Le nombre de caractères qui peuvent être obtenus est différent,En particulier les personnages multilingue。
* 3. $lengths Les tableaux sont uniquement utilisés mysqli::store_result Ou il est valable lors de la tampon du résultat par défaut,utiliser mysqli_use_result Non disponible quand。
* 4. Assurez-vous de confirmer avant de visiter $result C'est efficace mysqli_result Objet,sinon $lengths Aucune existence ou erreur。
*/</span>
</span><span><span class="hljs-comment">// 进一步Exemple:utiliser长度信息处理数据</span></span><span>
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$field</span></span><span> => </span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-variable">$idx</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_search</span></span><span>(</span><span><span class="hljs-variable">$field</span></span><span>, </span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-variable">$row</span></span><span>));
</span><span><span class="hljs-variable">$len</span></span><span> = </span><span><span class="hljs-variable">$lengths</span></span><span>[</span><span><span class="hljs-variable">$idx</span></span><span>] ?? </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Champs '<span class="hljs-subst">{$field}</span></span></span><span>' La longueur de valeur de(octet)pour:</span><span><span class="hljs-subst">{$len}</span></span><span>\n";
</span><span><span class="hljs-comment">// Faites attention au $len 是octet长度,Pas nécessairement égal au nombre de caractères de chaîne</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Nombre de caractères de chaîne:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">mb_strlen</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
}
</span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">free</span></span><span>();
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"La requête a échoué ou pas de résultats。\n"</span></span><span>;
}
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</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">// Cette partie du code n'a rien à voir avec le contenu du texte,Par exemple, des fins uniquement</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Fin de l'exécution du script。\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Étiquettes associées:
mysqli_result