もともとは pear を学びたかったのですが、インターネット上で adodb を非常に高く評価している投稿がいくつかあったため、これに変更しました。
ADODB には次の利点があります (オンラインでの話ですが、私のものではありません):
1. Pear よりも多くの種類のデータベースをサポートし、インストールも必要ありません。サーバーのサポートは必要ありません (初心者にとって、これは非常に重要です)
adodb が何なのかわからない、または adodb をダウンロードしたい友達は、このリンクにアクセスしてください: http://www.phpe.net/class/106 .shtml
さらに、README の全文を翻訳した兄弟、または翻訳の場所を知っている兄弟がいたら、私に返信してください。ありがとうございます。
チュートリアル
例 1: Select ステートメント
タスク: Northwind という名前の Access データベースに接続し、各レコードの最初の 2 つのフィールドを表示します
この例では、新しい ADOC 接続 (ADOConnection) オブジェクトを作成し、それを使用して接続しました。この接続は、永続的な接続である PConnect メソッドを使用します。データベースにクエリを実行する場合は、いつでもこの接続の Execute() 関数を呼び出すことができます。この関数は、実際にはカーソルである ADORecordSet オブジェクトを返します。配列フィールド[]内の現在の行を保持します。あるレコードから次のレコードに移動するには、MoveNext() を使用します。
注意: この例では使用されていない、レコード数を制御できる非常に実用的な関数があります。表示されます (最初の 10 レコードのみが表示される場合は、ページング表示に使用できます)。 -------- -------------------------------------- --------
include('adodb.inc.php'); #ADOdb をロードする
$conn = &ADONewConnection('access'); # 新しい接続を作成します
$conn-> PConnect('northwind'); #northwind という名前の MS-Access データベースに接続します
$recordSet = &$conn->Execute('select * from products'); #product データ テーブルからすべてのデータを検索します
if (! $recordSet)
print $ conn->ErrorMsg(); //データ検索中にエラーが発生した場合、エラーメッセージを表示します
else
while (!$recordSet->EOF) {
print $recordSet->fields[ 0].' '.$recordSet->fields[1].'
';
$recordSet->MoveNext(); //リスト表示データ
$ RecordSet->Close(); // オプション
$conn->Close(); // オプション
---------- ----------- -------------------------------------- ----------- -
$recordSet は、$recordSet->fields の現在の配列を返し、フィールドに数値的にインデックスを付けます (0 から開始します)。次のフィールドに移動するには、MoveNext() 関数を使用します。 EOF プロパティは、データベース検索が終了したときに設定されます。 Execute() でエラーが発生した場合、レコードセットは PHP のデータベース拡張機能から false を返します。一部のデータベース拡張では、フィールド名ではなく数値でのみインデックスを付けることができます。フィールド名インデックスを使用する場合は、インデックスの形式に関係なく、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 ) ; # 配列を示します(['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 テーブルから CustomerID フィールドと OrderDate フィールドを検索します
if (!$recordSet)
print $conn->ErrorMsg(); //データベース検索エラーが発生した場合は、Error を表示します。 message
else
while (!$recordSet->EOF) {
$fld = $recordSet->FetchField(1); //2 番目のフィールドを $fld に代入します
$type = $recordSet-> fld->type); //フィールド値を取得する形式
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(); //オプション
?> ------------------------------------------------ -- ------------------------
この例では、FetchField() 関数を使用して 2 番目のフィールドの形式をチェックします。 3 つの変数を含むオブジェクト
name: フィールド名
type: データベース内のフィールドの実際の形式
max_length: フィールドの最大長。MYSQL など、一部のデータベースではこの値が返されません。この場合は max_length値は -1 です。
フィールドのデータベース形式を標準フィールド形式に変換するために MetaType() を使用します。
C: 文字フィールド。 タグの下に表示されます。
X : 比較的大きなテキストを格納するテキスト フィールド。一般的に