Wie verwendete ich mySQLI_Result :: field_seek und mySQLI_Fetch_assoc, um Felddaten zu erhalten?
Das Erhalten von Felddaten im Abfrageergebnissatz ist eine gemeinsame Aufgabe, wenn die MySQLI -Erweiterung von PHP für Datenbankoperationen verwendet wird. Die MySQLI -Erweiterung bietet mehrere Möglichkeiten zum Verarbeiten von Ergebnismengen, bei denen mySQLI_Result :: field_seek und mySQLI_Fetch_assoc zwei sehr nützliche Funktionen sind. Mit Field_seek können Sie den Zeiger des Ergebnisssatzes in die angegebene Feldposition verschieben, während MySQLI_Fetch_assoc die Daten im Ergebnis der assoziativen Array erhalten kann. Die Verwendung dieser beiden Funktionen kann es effizienter und flexibler machen, die Daten der erforderlichen Felder zu erhalten.
MySQLI_Result :: Field_seek : Mit dieser Methode können Sie den Zeiger des Ergebniss in die angegebene Feldindexposition verschieben. Es wirkt sich auf die nachfolgenden Daten aus, die durch Funktionen wie MySQLI_Fetch_assoc , MySQLI_Fetch_row usw. erhalten wurden.
MySQLI_Fetch_assoc : Diese Methode nimmt eine Datenreihe aus der Zeigerposition des aktuellen Ergebnisssatzes auf und gibt sie als assoziatives Array zurück.
Angenommen, wir haben eine Datenbanktabelle namens Benutzer . Die Tabellenstruktur lautet wie folgt:
<span><span><span class="hljs-keyword">CREATE</span></span><span> </span><span><span class="hljs-keyword">TABLE</span></span><span> users (
id </span><span><span class="hljs-type">INT</span></span><span> </span><span><span class="hljs-keyword">PRIMARY</span></span><span> KEY,
username </span><span><span class="hljs-type">VARCHAR</span></span><span>(</span><span><span class="hljs-number">50</span></span><span>),
email </span><span><span class="hljs-type">VARCHAR</span></span><span>(</span><span><span class="hljs-number">100</span></span><span>),
age </span><span><span class="hljs-type">INT</span></span><span>
);
</span></span>
Hier ist ein einfaches PHP -Beispiel, das zeigt, wie Sie FELD_SEEK und MYSQLI_FECH_ASSOC verwenden, um Felddaten zu erhalten.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Erstellen Sie eine Datenbankverbindung</span></span><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">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database_name"</span></span><span>);
</span><span><span class="hljs-comment">// Überprüfen Sie, ob die Verbindung erfolgreich ist</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">"Connection failed: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-comment">// Eine Frage ausführen</span></span><span>
</span><span><span class="hljs-variable">$query</span></span><span> = </span><span><span class="hljs-string">"SELECT id, username, email, age FROM users"</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">$query</span></span><span>);
</span><span><span class="hljs-comment">// Überprüfen Sie, ob die Abfrage erfolgreich ist</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-comment">// verwenden field_seek Wechseln Sie zum angegebenen Feldstandort</span></span><span>
</span><span><span class="hljs-comment">// Angenommen, wir wollen es zuerst bekommen 'email' Felder(第二个Felder),Felder索引从 0 Start</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">field_seek</span></span><span>(</span><span><span class="hljs-number">2</span></span><span>); </span><span><span class="hljs-comment">// 'email' Felder的索引为2</span></span><span>
</span><span><span class="hljs-comment">// Die erste Zeile, das Ergebnis zu erzielen</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-comment">// Die Daten in dieser Zeile ausgeben,zeigen 'email' Felder</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Email: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'email'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span><span><span class="hljs-comment">// Nehmen Sie weiterhin andere Datenzeilen ab</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">echo</span></span><span> </span><span><span class="hljs-string">"Username: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'username'</span></span><span>] . </span><span><span class="hljs-string">" - Age: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'age'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span><span><span class="hljs-comment">// Füllen Sie das Ergebnissatz frei</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">"Error: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->error;
}
</span><span><span class="hljs-comment">// Schließen Sie die Datenbankverbindung</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>
</span></span>
Datenbankverbindung : Erstens verwenden wir neue MySQLI (), um eine Verbindung zur Datenbank zu erstellen.
Abfrageausführung : Eine Abfrage wird über $ MySQLI-> query () ausgeführt, um die Felder ID , Benutzername , E-Mail und Alter in der Benutzertabelle abzufragen.
Verschieben Sie den Feldzeiger mit FELD_SEEK : Anruf field_seek (2), um den Ergebnis -Set -Zeiger auf die Position des E -Mail -Feldes zu verschieben (der Indexwert ist 2). Zu diesem Zeitpunkt gibt MySQLI_Fetch_assoc nur relevante Daten aus dem Feld E -Mail zurück.
Daten abrufen und anzeigen : Holen Sie sich jede Datenreihe über mySQLI_Fetch_assoc () und zeigen Sie den Inhalt des E -Mail -Felds an. Beachten Sie, dass field_seek für nachfolgende fetch_assoc -Anrufe gültig ist, sodass Sie flexibel steuern können, um Daten zu erhalten.
Release-Ergebnis-Set : $ result-> Free () wird verwendet, um die Abfrageergebnisse zu veröffentlichen.
Schließen Sie die Datenbankverbindung : $ mysqli-> close () Schließen Sie die Datenbankverbindung.
Die FELD_SEEK -Methode betrifft alle nachfolgenden Fetch_* -Funktionen basierend auf der aktuellen Ergebnismenge. Achten Sie daher vorsichtig. Stellen Sie sicher, dass Sie die Struktur und die Feldreihenfolge der Abfrageergebnisse verstanden haben, bevor Sie sie verwenden.
mysqli_fetch_assoc () gibt ein assoziatives Array zurück, das alle Felddaten der aktuellen Zeile enthält. Der Feldname ist der Schlüssel des Arrays.
Wenn das Abfrageergebnissatz mehrere Felder enthält und Sie Daten für einige Felder in einer bestimmten Reihenfolge abrufen möchten, können Sie die Bewegung des Zeigers über Field_seek steuern, um die richtigen Felder zu erhalten, wenn mySQLI_Fetch_assoc .
Mit MySQLi_Result :: Field_seek und MySQLI_Fetch_assoc können wir die Abfrageergebnisse flexibler bedienen. Durch Einstellen der Position des Feldzeigers nach field_seek können wir Daten für ein bestimmtes Feld selektiv erhalten. Diese Kombination ist besonders nützlich, insbesondere wenn Sie einige Felder in den Abfrageergebnissen überspringen müssen oder die Feldreihenfolge flexibel einstellen müssen.