Aktueller Standort: Startseite> Neueste Artikel> Begegnen Sie auf eine Art Misspaarung? Sehen Sie, welche Arten von Themen bei der Verwendung von MySQLI_Result :: $ Längen geachtet werden sollten

Begegnen Sie auf eine Art Misspaarung? Sehen Sie, welche Arten von Themen bei der Verwendung von MySQLI_Result :: $ Längen geachtet werden sollten

gitbox 2025-08-28
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Teil des Codes hat nichts mit dem Inhalt des Textes zu tun,Zum Beispiel nur Zwecke</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Beginnen Sie mit der Ausführung des Skripts...\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/*
Ein Typ -Nichtübereinstimmung angetroffen?schauen Sie an mysqli_result::$lengths Welche Arten von Themen sollten bei der Verwendung geachtet werden
*/</span>

<span class="hljs-comment">/**
 * mysqli_result::$lengths ist ein Array,Enthält die Datenlänge, die jedem Feld im Ergebnissatz entsprechen。
 * Bei der Verwendung aufpassen,Typen und Nutzungsszenarien dieser Längenwerte。
 */</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>-&gt;connect_error) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Verbindung ist fehlgeschlagen: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;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>-&gt;</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 ist eine Reihe von ganzen Zahlen,Das Element entspricht der Bytelänge jedes Feldes</span></span><span>
    </span><span><span class="hljs-variable">$lengths</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-&gt;lengths;

    </span><span><span class="hljs-comment">// Beispiel:Holen Sie sich das Längenarray und drucken Sie</span></span><span>
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Feldlängenarray -Typ: "</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">"Feldlängeninhalt:\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">/*
     * Schlüsselpunkte für Typfragen:
     * 1. $lengths ist ein Array,Und jedes Element ist eine Ganzzahl(int)。
     * 2. Diese Längen sind Bytes,Beachten Sie die Funktion der Zeichenfolgelänge strlen Die Anzahl der Zeichen, die erhalten werden können, ist unterschiedlich,Besonders Multibyte -Charaktere。
     * 3. $lengths Arrays werden nur verwendet mysqli::store_result Oder es ist gültig, wenn das Ergebnis standardmäßig puffern,verwenden mysqli_use_result Nicht verfügbar, wenn。
     * 4. Achten Sie darauf, vor dem Besuch zu bestätigen $result Es ist effektiv mysqli_result Objekt,ansonsten $lengths Keine Existenz oder Fehler。
     */</span>

    </span><span><span class="hljs-comment">// 进一步Beispiel:verwenden长度信息处理数据</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>-&gt;</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> =&gt; </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">"Felder '<span class="hljs-subst">{$field}</span></span></span><span>' Die Wertlänge von(Byte)für:</span><span><span class="hljs-subst">{$len}</span></span><span>\n";
            </span><span><span class="hljs-comment">// Achten auf die $len 是Byte长度,Nicht unbedingt gleich der Anzahl der String -Zeichen</span></span><span>
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Anzahl der Zeichenfolgenzeichen:"</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>-&gt;</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">"Abfrage fehlgeschlagen oder keine Ergebnisse。\n"</span></span><span>;
}

</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Teil des Codes hat nichts mit dem Inhalt des Textes zu tun,Zum Beispiel nur Zwecke</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Ende der Skriptausführung。\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>