ifx_getsqlca

(PHP 4, PHP 5 < 5.2.1)

ifx_getsqlcaクエリ実行後、sqlca.sqlerrd[0..5] の値を得る

説明

ifx_getsqlca ( resource $result_id ) : array

result_id に関連するクエリを実行した後の sqlca.sqlerrd[0] から sqlca.sqlerrd[5] に関する擬似レコードを返します。

insert、update、delete の場合、クエリが実行された後、サーバーにより 設定される場合と同様にレコードの値が返されます。 これにより、作用を受けた行の数および連番の挿入値にアクセスすることが 可能となります。 SELECT の場合、この値は PREPARE 文の後で保存された値となります。 この値から作用を受けた行の数の"推測"値が分かります。 ifx ドライバにより適当な時に保存された値が取得されるため、 この関数を使用することにより、 SELECT dbinfo('sqlca.sqlerrdx') クエリを実行するオーバーヘッドを防止することができます。

パラメータ

result_id

result_id は、 ifx_query() または ifx_prepare() (select 型のクエリのみ!) により返された有効な結果 ID です。

返り値

連想配列を返します。含まれるエントリは sqlerrd0sqlerrd1sqlerrd2sqlerrd3sqlerrd4 および sqlerrd5 です。

例1 Informix sqlca.sqlerrd[x] の値を取得する

<?php
/* 'sometable' の最初のカラムは連番であると仮定する */
$qid ifx_query("insert into sometable
                  values (0, '2nd column', 'another column') "
$connid);
if (!
$qid) {
    
/* ... error ... */
}
$sqlca ifx_getsqlca($qid);
$serial_value $sqlca["sqlerrd1"];
echo 
"挿入された行の続き番号は : " "$serial_value<br>\n";       
?>