<?xml version="1.0" encoding="utf-8"?> <!-- $Revision$ --> <!-- EN-Revision: 4754397753fd79f1c846868b66a2448babab1c54 Maintainer: takagi Status: ready --> <!-- CREDITS: hirokawa,shimooka --> <refentry xml:id="function.mysql-fetch-array" xmlns="http://docbook.org/ns/docbook"> <refnamediv> <refname>mysql_fetch_array</refname> <refpurpose>連想配列、添字配列、またはその両方として結果の行を取得する</refpurpose> </refnamediv> <refsynopsisdiv> <warning> &mysql.alternative.note; <simplelist role="alternatives"> <member><function>mysqli_fetch_array</function></member> <member><methodname>PDOStatement::fetch</methodname></member> </simplelist> </warning> </refsynopsisdiv> <refsect1 role="description"> &reftitle.description; <methodsynopsis> <type>array</type><methodname>mysql_fetch_array</methodname> <methodparam><type>resource</type><parameter>result</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter>result_type</parameter><initializer>MYSQL_BOTH</initializer></methodparam> </methodsynopsis> <para> 取得した行に対応する配列を返し、内部のデータポインタを前に進めます。 </para> </refsect1> <refsect1 role="parameters"> &reftitle.parameters; <para> <variablelist> &mysql.result.description; <varlistentry> <term><parameter>result_type</parameter></term> <listitem> <para> 取得する配列の形式です。以下の定数値をとります。: <constant>MYSQL_ASSOC</constant>, <constant>MYSQL_NUM</constant>, そして <constant>MYSQL_BOTH</constant> </para> </listitem> </varlistentry> </variablelist> </para> </refsect1> <refsect1 role="returnvalues"> &reftitle.returnvalues; <para> 取得した行をあらわす文字列の配列を返します。もし行が存在しない場合は &false; を返します。返される配列の形式は、<parameter>result_type</parameter> がどのように指定されているかによります。<constant>MYSQL_BOTH</constant>(デフォルト) を利用すると、連想添字と数値添字を共に持つ配列を取得します。 <constant>MYSQL_ASSOC</constant> を利用すると(<function> mysql_fetch_assoc</function> の動作と同様に)連想添字のみが取得され、 <constant>MYSQL_NUM</constant> を利用すると (<function>mysql_fetch_row</function> の動作と同様に)数値添字のみが 取得されます。 </para> <para> 結果の中で同じフィールド名のカラムが 2 つ以上ある場合、 最後のカラムが優先されます。 同名の他のカラムにアクセスするには、そのカラムの数値インデックスを 使うかまたはカラムの別名を定義する必要があります。 カラムの別名を定義した場合は、本来の列名でそのカラムにアクセスすることは できません。 </para> </refsect1> <refsect1 role="examples"> &reftitle.examples; <para> <example> <title>重複した列名に対して別名を定義する問い合わせ</title> <programlisting role="sql"> <![CDATA[ SELECT table1.field AS foo, table2.field AS bar FROM table1, table2 ]]> </programlisting> </example> </para> <para> <example> <title><function>mysql_fetch_array</function> を <constant>MYSQL_NUM</constant> とともに利用する</title> <programlisting role="php"> <![CDATA[ <?php mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result, MYSQL_NUM)) { printf("ID: %s Name: %s", $row[0], $row[1]); } mysql_free_result($result); ?> ]]> </programlisting> </example> </para> <para> <example> <title><function>mysql_fetch_array</function> を <constant>MYSQL_ASSOC</constant> とともに利用する</title> <programlisting role="php"> <![CDATA[ <?php mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { printf("ID: %s Name: %s", $row["id"], $row["name"]); } mysql_free_result($result); ?> ]]> </programlisting> </example> </para> <para> <example> <title><function>mysql_fetch_array</function> を <constant>MYSQL_BOTH</constant> とともに利用する</title> <programlisting role="php"> <![CDATA[ <?php mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $result = mysql_query("SELECT id, name FROM mytable"); while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { printf ("ID: %s Name: %s", $row[0], $row["name"]); } mysql_free_result($result); ?> ]]> </programlisting> </example> </para> </refsect1> <refsect1 role="notes"> &reftitle.notes; <note> <title>パフォーマンス</title> <para> 特筆すべき点として、<function>mysql_fetch_array</function> が 著しい付加価値があるにもかかわらず、 <function>mysql_fetch_row</function>より <emphasis>それほど</emphasis>遅くはないということが言えます。 </para> </note> &database.field-case; &database.fetch-null; </refsect1> <refsect1 role="seealso"> &reftitle.seealso; <para> <simplelist> <member><function>mysql_fetch_row</function></member> <member><function>mysql_fetch_assoc</function></member> <member><function>mysql_data_seek</function></member> <member><function>mysql_query</function></member> </simplelist> </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"~/.phpdoc/manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->