Heim  >  Artikel  >  php教程  >  [Übertragung] Der Unterschied zwischen mysql_fetch_row, mysql_fetch_array und mysql_fetch_assoc

[Übertragung] Der Unterschied zwischen mysql_fetch_row, mysql_fetch_array und mysql_fetch_assoc

WBOY
WBOYOriginal
2016-09-29 09:19:021105Durchsuche
<?<span style="color: #000000;">php
</span><span style="color: #800080;">$link </span>= <span style="color: #008080;">mysql_connect</span>('localhost', 'root', <span style="color: #000000;">&rdquo;);
</span><span style="color: #008080;">mysql_select_db</span>('abc', <span style="color: #800080;">$link</span><span style="color: #000000;">);
</span><span style="color: #800080;">$sql</span> = &ldquo;select *<span style="color: #000000;"> from book&rdquo;;
</span><span style="color: #800080;">$result</span> = <span style="color: #008080;">mysql_query</span>(<span style="color: #800080;">$sql</span><span style="color: #000000;">);
</span><span style="color: #0000ff;">while</span>(<span style="color: #800080;">$row</span> = <span style="color: #008080;">mysql_fetch_row</span>(<span style="color: #800080;">$result</span><span style="color: #000000;">))
{
  </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$row</span>['cid'].'::'.<span style="color: #800080;">$row</span>[1].'<br>'<span style="color: #000000;">;
}
</span><span style="color: #800080;">$result</span> = <span style="color: #008080;">mysql_query</span>(<span style="color: #800080;">$sql</span><span style="color: #000000;">);
</span><span style="color: #0000ff;">while</span>(<span style="color: #800080;">$row</span> = <span style="color: #008080;">mysql_fetch_array</span>(<span style="color: #800080;">$result</span><span style="color: #000000;">))
{
  </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$row</span>['cid'].'::'.<span style="color: #800080;">$row</span>[1].'<br>'<span style="color: #000000;">;
}
</span><span style="color: #800080;">$result</span> = <span style="color: #008080;">mysql_query</span>(<span style="color: #800080;">$sql</span><span style="color: #000000;">);
</span><span style="color: #0000ff;">while</span>(<span style="color: #800080;">$row</span> = <span style="color: #008080;">mysql_fetch_object</span>(<span style="color: #800080;">$result</span><span style="color: #000000;">))
{
  </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$row</span>->cid.'::'.<span style="color: #800080;">$row</span>->title.”<br><span style="color: #000000;">”;
}
</span><span style="color: #800080;">$result</span> = <span style="color: #008080;">mysql_query</span>(<span style="color: #800080;">$sql</span><span style="color: #000000;">);
</span><span style="color: #0000ff;">while</span>(<span style="color: #800080;">$row</span> = <span style="color: #008080;">mysql_fetch_assoc</span>(<span style="color: #800080;">$result</span><span style="color: #000000;">))
{
  </span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$row</span>['cid'].'::'.<span style="color: #800080;">$row</span>[1].'<br>'<span style="color: #000000;">;
}
</span>?>

Analyse:
mysql_fetch_row, diese Funktion nimmt eine Zeile aus der Ergebnismenge als Aufzählungsdaten, ruft eine Datenzeile aus der Ergebnismenge ab, die mit dem angegebenen Ergebnisbezeichner verknüpft ist, und gibt sie als Array zurück. Jede Ergebnisspalte wird in einer Zelle des Arrays gespeichert, beginnend bei Offset 0. Beachten Sie, dass der Offset hier bei 0 beginnt, was bedeutet, dass der Feldname nicht zum Abrufen des Werts verwendet werden kann, sondern nur der Index zum Abrufen des Werts, sodass der folgende Code den Wert nicht abrufen kann:
While($row = mysql_fetch_row($ res)){
 echo $row['cid'].'::'.$row[1].";
 } //$row['cid'] kann hier nicht abgerufen werden value.
mysql_fetch_array, rufen Sie eine Zeile aus der Ergebnismenge als assoziatives Array oder als numerisches Array oder beides ab. Zusätzlich zum Speichern der Daten im Array als numerischer Index können Sie die Daten auch als assoziatives speichern Index, wobei der Feldname als Schlüsselname verwendet wird. Das heißt, das Ergebnis, das er erhält, ist wie ein Array, und der Wert kann über den Schlüssel oder den Index abgerufen werden, also
 while($row = mysql_fetch_array($res)) {
 echo $row['cid'] .'::'.$row[1].“;
 }//Hier können $row['cid'], $row[1] entsprechende Werte erhalten .
mysql_fetch_object ruft, wie der Name schon sagt, eine Zeile aus der Ergebnismenge als Objekt ab und verwendet den Feldnamen als Attribut. Der einzige Weg, den Wert zu erhalten, ist also
while($row = mysql_fetch_object($res)){
echo $row->cid.'::'.$row->title."";
 }
mysql_fetch_assoc erhält eine Zeile aus der Ergebnismenge als assoziatives Array, was bedeutet, dass diese Funktion nicht wie mysql_fetch_row den Index verwenden kann, um den Wert abzurufen, sondern nur den Feldnamen verwenden kann, also
 während ($row = mysql_fetch_assoc( $res)){
 echo $row['cid'].'::'.$row[1].“; Wert auf diese Weise
Zusätzlicher Punkt:
Die Funktion mysql_fetch_array ist wie folgt definiert: Array mysql_fetch_array (Ressourcenergebnis [, int result_type]), gibt ein Array zurück, das basierend auf den aus der Ergebnismenge erhaltenen Zeilen generiert wurde, und gibt FALSE zurück wenn keine weiteren Zeilen vorhanden sind. Der optionale zweite Parameter result_type in mysql_fetch_array() ist eine Konstante, die die folgenden Werte annehmen kann: MYSQL_ASSOC, MYSQL_NUM und MYSQL_BOTH , MYSQL_ASSOC);
2. mysql_fetch_row($result) == mysql_fetch_array($result, MYSQL_NUM);
Die Funktion mysql_fetch_array() kann also gewissermaßen als Sammlung von mysql_fetch_row() betrachtet werden . Darüber hinaus gibt es auch den Parameter MYSQL_BOTH, der sowohl einen Assoziations- als auch einen numerischen Index enthält db ist die menschliche Datenbankoperationsklasse $. db->fetch_array($query), fetch_array($query) ist eine Methode in dieser db-Klasse, $row = $db->fetch_array($query) bedeutet, die zu erhalten Datenbank aus dem Datensatz $query eine Zeile mit Datensätzen abfragen.




Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn