dbx_query

(PHP 4 = 4.0.6)

dbx_query -- クエリを送信し、(ある場合には)結果を全て取得する

説明

dbx_result_object dbx_query ( dbx_link_object link_identifier, string sql_statement [, long flags])

警告

このモジュールは、 実験的 なものです。これは、これらの関数の動作、関数名は、このドキュメントに書かれて事項と同様に告知なく将来的なPHPのリリースで変更される可能性があります。注意を喚起するとともに、このモジュールは使用者のリスクで使用して下さい。

成功時にdbx_result_objectまたは1を返します。結果オブジェクトは、 SQL命令が結果を返す場合にのみ返されます。エラーの場合には、0を返 します。パラメータ flags は、返される情報 の量を制御するために使用されます。定数 DBX_RESULT_INFO, DBX_RESULT_INDEX, DBX_RESULT_ASSOC またはこれらの論理和を組み合わ せることが可能です。DBX_RESULT_INFO を指定するとフィールド名およ びフィールド型のようなカラムに関する情報が提供されます。 DBX_RESULT_INDEX により、結果は(data[2][3]のような、ただし、2はレ コード番号、3はカラム番号)2次元の配列で返されます。ただし、最初の レコードおよびカラム番号は0から始まります。 DBX_RESULT_ASSOC により、フィールド名にカラム添字が関連付けられま す。パラメータ flags によらず DBX_RESULT_INDEXは常に返されることに注意して下さい。 DBX_RESULT_ASSOC が指定された場合、DBX_RESULT_INFOは指定されない 場合でも返されます。これは、DBX_RESULT_INDEX,DBX_RESULT_INDEX | DBX_RESULT_INFO および DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC の組み合わせのみが結果的に使用可能であることを意 味します。 flags が指定されない場合、この 最後の組み合わせがデフォルトです。連想配列で参照される結果は、添 字番号の結果へのリファレンスです。このため、 data[0][0] を修正した場合、 data[0]['fieldnameforfirstcolumn'] も同時に修 正されます。

dbx_result_object には、5つのメンバがあります。 ( flags によっては4つの場合もあります)これら は、'handle', 'cols', 'rows', 'info'(オプション), 'data'です。 handle は、指定したモジュールに関する有効な結果IDであり、次のよう にモジュール専用関数で使用可能です。

$result = dbx_query ($link, "SELECT id FROM tbl");
mysql_field_len ($result- handle, 0);


メンバ cols および rows は、それぞれカラム(またはフィールド)番号 および行(またはレコード)番号です。例えば、

$result = dbx_query ($link, "SELECT id FROM tbl");
echo "result size: " . $result- rows . " x " . $result- cols . " br
\n";


メンバinfoは、DBX_RESULT_INFOまたはDBX_RESULT_ASSOCが flags パラメータで指定された場合のみ返され ます。このメンバは2次元配列で、カラム情報を取得するために二つのレ コード("name"と"type")を有しています。例えば、

$result = dbx_query ($link, "SELECT id FROM tbl");
echo "column name: " . $result- info["name"][0] . " br \n";
echo "column type: " . $result- info["type"][0] . " br \n";


メンバdataには、実際の結果が含まれます。そして、カラム名も同様に 関連しています。DBX_RESULT_ASSOCが設定された場合、 $result- data[2]["fieldname"] を使用することが 可能です。

例 1 dbx_query() の例

 ?php
$link = dbx_connect ("odbc", "", "db", "username", "password")
    or die ("Could not connect");
$result = dbx_query ($link, "SELECT id, parentid, description FROM
tbl");
if ($result==0) echo "Query failed\n br ";
elseif ($result==1) {
    echo "Query executed successfully\n br ";
} else {
    $rows=$result- rows;
    $cols=$result- cols;
    echo " p table dimension: {$result- rows} x {$result- cols} br 
table border=1 \n";
    echo " tr ";
    for ($col=0; $col $cols; ++$col) {
        echo " td -{$result- info["name"][$col]}- br -{$result-
info["type"][$col]}- /td ";
    }
    echo " /tr \n";
    for ($row=0; $row $rows; ++$row){
        echo " tr ";
        for ($col=0; $col $cols; ++$col) {
            echo " td -{$result- data[$row][$col]}- /td ";
        }
        echo " /tr \n";
    }
    echo " /table  p \n";
    echo "table dimension: {$result- rows} x id, parentid,
description br  table border=1 \n";
    for ($row=0; $row $rows; ++$row) {
        echo " tr ";
        echo " td -{$result- data[$row]["id"]}- /td ";
        echo " td -{$result- data[$row]["parentid"]}- /td ";
        echo " td -{$result- data[$row]["description"]}- /td ";
        echo " /tr \n";
    }
    echo " /table  p \n";
}
dbx_close($link);
? 

注意 モジュール毎のドキュメントも参照下さい。

dbx_connect() も参照下さい。