25

重複の可能性:
mysql_fetch_array、mysql_fetch_assoc、mysql_fetch_object

結果セットの現在の行のフィールドを連想配列に返し、結果ポインターを次の行に移動できる関数が必要です。

間で混乱

mysql_fetch_row()
mysql_fetch_assoc()
mysql_fetch_array()

どちらを使用する必要がありますか? どんな助けでも大歓迎です。ありがとうございました。

4

3 に答える 3

52

:mysql_*関数の使用は非推奨と見なされます。代わりに、 MySQLiPDOなど、より優れたセキュリティとより多くの機能を提供するものを使用する必要があります。

それは何ですか?

名前が示すように、連想配列を返します (列名をキーとして、値を行値として)mysql_fetch_assoc探しています。


さまざまな関数は何を返しますか?

上記の関数はすべて配列を返します。それらの違いは、返されるオブジェクトでキーとして使用される値です。

  • mysql_fetch_row

    この関数は、値が SQL クエリで定義されている順序で来る行を返します。キーは、0選択された列の数より 1 少ない数までの範囲になります。

  • mysql_fetch_assoc

    この関数は、列名が対応する値を格納するキーとなる連想配列として行を返します。

  • mysql_fetch_array

    この関数は、実際には と の両方の内容を 1 つmysql_fetch_rowmysql_fetch_assocマージした配列を返します。数値キーと文字列キーの両方があり、最も簡単な方法でデータにアクセスできます。

    _assocどちらかまたはどちらかを使用することをお勧めします_row

于 2012-07-14T01:04:58.317 に答える
8

mysql_fetch_assoc when you are manually referring to the fields.

mysql_fetch_row when you are using it as part of a list($a,$b,$c...) = ...

Never mysql_fetch_array.

于 2012-07-14T01:27:32.207 に答える
2

mysql_fetch_assoc()

テーブルにidとnameの2つの列があるとします。次のスニペットを使用できます-

while ($row = mysql_fetch_assoc($result)) {
    echo $row["id"];
    echo $row["name"];
}
于 2012-07-14T01:08:09.353 に答える