PHP マニュアル
前のページ |  | 次のページ

# fbsql_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_query -- FrontBase クエリを送信する

## 説明

resource fbsql_query ( string query [, resource link_identifier [, int batch_size]] )

fbsql_query() は、指定したリンク ID に 関連付けられたサーバ上の現在アクティブなデータベースに対して クエリを送信します。 link_identifier が指定されていない場合は、 直近にオープンされたリンクを使用します。オープンしているリンクが 存在しない場合は、引数なしで fbsql_connect() がコールされた場合と同じ方法でリンクを確立し、それを使用します。

> 注意: クエリ文字列は、常にセミコロンで終わる必要があります。

fbsql_query() は、クエリが成功したかどうかを 示すために `TRUE` (非ゼロ) あるいは `FALSE` を返します。 返り値が `TRUE` の場合、クエリは正しい形式であってサーバで実行された ことを示します。変更された行数や返された行数については何も示しません。 クエリが成功しても 1 行も変更しなかったり 1 行も返さなかったりすることは 十分にありえることです。

以下のクエリは文法的に間違っています。そのため fbsql_query() は失敗して `FALSE` を返します。

例 1. fbsql_query() の例
`<?php $result = fbsql_query("SELECT * WHERE 1=1") or die ("不正なクエリ"); ?>`

テーブル my_tbl に my_col というカラムが存在しない場合、以下のクエリは意味的に間違ったものと なります。そのため fbsql_query() は失敗して `FALSE` を返します。

例 2. fbsql_query() の例
`<?php $result = fbsql_query ("SELECT my_col FROM my_tbl") or die ("不正なクエリ"); ?>`

クエリが参照しているテーブルへのアクセス権がない場合にも fbsql_query() は失敗し、`FALSE` を返します。

クエリが成功したと仮定すると、 fbsql_num_rows() を使用して SELECT 文から 返された行数を取得したり fbsql_affected_rows() を使用して DELETE、INSERT、REPLACE あるいは UPDATE 文で変更された行数を 取得したりすることが可能です。

SELECT 文の場合は fbsql_query() は新しい結果 ID を返し、これを fbsql_result() に渡すことができます。 結果セットを得た後には fbsql_free_result() を 使用して関連するリソースを開放することが可能です。しかし、スクリプトが 終了した際に自動的にメモリは開放されます。

fbsql_affected_rows()、 fbsql_db_query()、 fbsql_free_result()、 fbsql_result()、 fbsql_select_db() および fbsql_connect() も参照ください。

前のページ | ホーム | 次のページ
fbsql_pconnect | 上に戻る | fbsql_read_blob