ホームページ > php教程 > php手册 > Adodb の 10 の例 (クリアバージョン)

Adodb の 10 の例 (クリアバージョン)

WBOY
リリース: 2016-06-13 12:34:51
オリジナル
917 人が閲覧しました

もともとは pear を学びたかったのですが、インターネット上で adodb を非常に高く評価している投稿がいくつかあったため、これに変更しました。
ADODB の利点は次のとおりです (私のものではなく、オンラインで言われています):
1. 速度は pear よりも 2 倍高速です。
2. pear よりも多くのデータベース タイプをサポートし、さらにアクセス;
3. インストールやサーバーのサポートは必要ありません (初心者にとってこれは非常に重要です)
adodb が何なのかわからない場合、または adodb をダウンロードしたい場合は、次のリンクにアクセスしてください。 .phpe.net/class/106.shtml
さらに、README の全文を翻訳した兄弟、または翻訳の場所を知っている兄弟がいたら、私に返信してください。ありがとうございます。
チュートリアル
例 1: Select ステートメント
タスク: Northwind という名前の Access データベースに接続し、各レコードの最初の 2 つのフィールドを表示します。

この例では、新しい ADOC を作成しました。この接続では、永続的な接続である PConnect メソッドを使用します。データベースにクエリを実行する場合は、いつでもこの接続の Execute() 関数を呼び出すことができます。実際には配列フィールド [] 内の現在の行を保持するカーソルである ADORecordSet オブジェクトを返します。

注意: 非常に実用的な方法があります。 Function SelectLimit in この例では使用されていません。表示されるレコードの数を制御できます (たとえば、最初の 10 レコードのみが表示され、ページング表示に使用できます)。 ---------------------------------------------------- --------- --------------------

<
include('adodb.inc.php' ); #ADOdb をロード
$conn = &ADONewConnection('access'); # 新しい接続を作成します
$conn->PConnect('northwind'); # Northwind という名前の MS-Access データベースに接続します>$recordSet = &$conn ->Execute('select * from products'); #商品データ テーブルからすべてのデータを検索
if (!$recordSet)
print $conn->ErrorMsg() ; //データ検索が発生した場合 エラーメッセージを表示
else
while (!$recordSet->EOF) {
print $recordSet->fields[0].' ;fields[1].'
';
$recordSet->MoveNext(); //次のレコードを指す
} //リスト表示データ

>Close(); // オプション
$conn->Close(); // オプション
----------------- ------ -------------------------------------------- ------ -------

$recordSet は、$recordSet->fields の現在の配列を返し、フィールドに数値インデックスを付けます (0 から開始します)。MoveNext() 関数を使用します。次のレコードに移動します。Execute() でエラーが発生すると、EOF プロパティは true に設定されます。

$recordSet->fields[]配列は PHP データベース拡張機能から生成されます。一部のデータベース拡張では、フィールド名ではなく数値でのみインデックスを付けることができます。フィールド名インデックスを使用する場合は、インデックスの形式に関係なく、Execute() または SelectLimit によってレコードセットを作成する必要があります。 ()。


PHP:-------------------------------------- ------ --------------------------------------
$ db->SetFetchMode (ADODB_FETCH_NUM);
$rs1 = $db->Execute('select * from table'); //数値インデックスを使用します
$db->SetFetchMode(ADODB_FETCH_ASSOC); >$rs2 = $ db->Execute('select * from table'); //フィールド名インデックスを使用
print_r($rs1->fields); # array([0]=>'v0 を表示) ',[1] =>'v1')
print_r($rs2->fields); # array(['col1']=>'v0',['col2'] =>' を示します) v1')-- ------------------------------------------- ----- ----------------------------


レコード番号を取得したい場合、 $recordSet-> ;RecordCount() を使用できます。現在のレコードがない場合は -1 を返します。

例 2: フィールド オブジェクトを使用した高度な選択
テーブルを検索し、最初の 2 つのフィールドを表示します。2 番目のフィールドが時刻形式または日付形式の場合は、米国標準時刻形式に変更します。 🎜>PHP:---------------------------------------------- ---- ------------------------------------

include( 'adodb.inc.php'); ///adodb をロードします
$conn = &ADONewConnection('access') //新しい接続を作成します
$conn->PConnect('northwind' ); // Northwind という名前の MS-Access データベースに接続します
$recordSet = &$conn->Execute('select CustomerID,OrderDate from Orders') // Orders テーブルから 2 つのフィールド CustomerID と OrderDate を検索します。
if (!$recordSet)
print $conn->ErrorMsg() //データベース検索エラーが発生した場合、エラーメッセージが表示されます
else
while (!$recordSet- >EOF) {
$ fld = $recordSet->FetchField(1); //2 番目のフィールドを $fld に代入
$type = $recordSet->MetaType($fld->type) ; //フィールド値を取得します。Format

if ( $type == 'D' || $type == 'T')
print $recordSet->fields[0].'。
$recordSet-> ;UserDate($recordSet->fields[1],'m/d/Y').'
' //フィールド形式が日付または時刻の場合は、それを出力しますアメリカの標準形式
else
print $recordSet->fields[0].' '.$recordSet->fields[1].'
' // それ以外の場合はそのまま出力します。

$recordSet- >MoveNext(); //次のレコードを指す
}
$recordSet->Close(); //オプション
$conn->Close (); // オプション

?>
-------------------------------- -------- -------------------------------------

この例では、FetchField() 関数を使用して 2 番目のフィールドの形式をチェックし、3 つの変数

name: フィールド名
type: フィールドの実際の形式を含むオブジェクトを返しました。データベース
max_length: フィールドの最大長。MYSQL など、一部のデータベースではこの値が返されません。
データベースの変換には、max_length 値が使用されます。フィールドの形式を標準フィールド形式に変換します。

C: X: 比較的大きなサイズを格納するテキスト フィールド。テキスト、通常は