Adodb公式紹介

Jun 21, 2016 am 09:09 AM
gt quot

アド

序文



あなたはエーテル、私はエーテル、
あなたはエーテル、私はエーテル、エーテル、エーテル、ニーテル、ニーテル -
すべてを中止しましょう

あなたはジャガイモが好きで、私はポタが好きです! -と、
あなたはトマトが好きで、私はトーマトが好きです
ポテト、ポタト、トマト、トマト -
すべてをやめましょう

私はこの曲を聴くのが大好きです。特にルイ・アームストロングとエラのデュエット・バージョン。この作品は、恋する二人が互いに競争することがいかに難しいかを示しており、妥協と共通点を見つける旅についても描かれています。

PHP は、最小限の労力で最も楽しく動的な Web サイトを構築できます。動的な Web サイトを構築するには、データベースを使用してログイン アカウント情報を取得し、動的なニュースを公開し、ディスカッション フォーラムに記事を保存する必要があります。あなたの会社は、利用可能な最も汎用性の高い MySQL データを使用して、あなたの Web サイトを想像以上に有名にする素晴らしい仕事をしました。その後、MySQL が実際のワークロードに対処できなくなったこともわかり、データベース システムを置き換える時期が来ました。

残念ながら、PHP でのすべてのデータベース アクセスは若干異なります。 MySQL に接続するには、mysql_connect() を使用します。Oracle または Microsoft SQL Server にアップグレードする場合は、それぞれ ocilogon() または mssql_connect() を使用する必要があります。さらに悪いことに、リンクごとに使用されるパラメータも異なるということです。

諦めないでください
プログラムの移植性を確保する必要がある場合、ADODB と呼ばれるデータベース パッケージ リンク ライブラリが登場しました。サポートされているすべてのデータベースと通信するための共通 A​​PI が提供されるため、諦める必要はありません。

ADODB は、Active Data Object Database の略称です (申し訳ありません! コンピューターをプレイする人は、あまり独創的ではない場合があります)。 ADODB は現在、MySQL、PostgreSQL、Oracle、Interbase、Microsoft SQL Server、Access、FoxPro、Sybase、ODBC、および ADO をサポートしています。ADODB は http://php.weblogs.com/adodb からダウンロードできます。

MySQL の例
PHP で最も一般的なデータベースは MySQL なので、次のプログラム コードが気に入ると思います。データベース名は mydab で MySQL サーバーに接続し、SQL select コマンド クエリを実行して、クエリ結果が 1 つずつ出力されます。

$db = mysql_connect("localhost", "root", "password");
mysql_select_db("mydb",$db);
$result = mysql_query("SELECT * FROM 従業員",$db);
if ($result === false) die("failed");
while ($fields = mysql_fetch_row($result)) {
for ($i=0, $max=sizeof($fields); $i print $fields[$i].' ;
}
print "
n";
}
上記のプログラム コードは色分けされたセクションに分かれており、最初のセクションは2 番目の段落は SQL コマンドを実行し、最後の段落は結果の各列をスキャンし、for ループは各列のフィールドを表示します。

次のステップは、ADODB プログラム コードを使用して同じ結果を取得することです:

include("adodb.inc.php");
$db = NewADOConnection('mysql');
$db->Connect( "localhost" , "root", "password", "mydb");
$result = $db->Execute("SELECT * FROM 従業員");
if ($result === false) die("失敗しました");
while (!$result->EOF) {
for ($i=0, $max=$result->FieldCount(); $i print $result- >fields [$i].' ';
$result->MoveNext();
print "
n";
}
次に、Oracle データベースを指すように変更します。 NewADOConnection('oracle ') になるプログラム コードです。完全なプログラム コードを見てみましょう...

データベースと接続します

include("adodb.inc.php");
$db = NewADOConnection(' mysql');
$db->Connect ("localhost", "root", "password", "mydb");
リンクされたプログラム コードは、元の MySQL プログラム コードよりも洗練されています。洗練された。 ADODB では、オブジェクト指向のアプローチを使用して複数のデータベースの複雑さを管理し、さまざまなクラスを使用してさまざまなデータベースを制御します。オブジェクト指向プログラミングが初めてでも、心配する必要はありません。複雑なことはすべて NewADOConnection() 関数の背後に隠されています。

メモリを節約するために、接続しているデータベースに関連する PHP プログラム コードのみをロードします。これは、NewADOConnection(databasedriver) を呼び出して行います。これには、mysql、mssql、oracle、oci8、postgres、sybase が含まれます。 vfp、access、ibase、その他多くのドライバー。

次に、NewADOConnection() を呼び出して接続クラスから新しいオブジェクト エンティティを生成し、最後に $db->Connect() を使用してデータベースに接続します。

SQL命令を実行する

$result = $db->Execute("SELECT * FROM従業員");
if ($result === false) die("failed");
SQL コマンドをサーバーに直接送信します。正常に実行されると、Execute() は上記の $result オブジェクトを返します。

初心者にとって混乱しやすい問題は、ADODB には接続オブジェクトとレコードセット オブジェクトという 2 種類のオブジェクトがあり、これらのオブジェクトをいつ使用するかということです。

接続オブジェクト ($db) は、データベースへの接続と SQL クエリのフォーマットを担当します。レコードセット オブジェクト ($result) は、結果を取得し、応答データをテキストまたは配列に正規化する役割を果たします。

唯一付け加えておきたいのは、ADODB には INSERT 命令と UPDATE 命令を簡単にする多くの便利な関数が用意されていることです。これについては上級章で説明します。

データを取得

while (!$result->EOF) {
for ($i=0, $max=$result->FieldCount(); $i print $ result->fields[$i].' ';
$result->MoveNext();
print "
n";
}
データを取得する前述の例は、ファイルの各行について、最初にファイルの終わり (EOF) に達しているかどうかを確認し、まだ終わりに達していない場合は、各列のフィールドをループしてから次の行に移動します (MoveNext)。同じことを繰り返します。

$result->fields[] 配列は PHP データベース拡張システムによって生成されます。一部のデータベース拡張システムでは、配列に名前でインデックスを付けるように強制するには、$ADODB_FETCH_MODE ユニバーサル変数を使用します。

$ADODB_FETCH_MODE = ADODB_FETCH_NUM;
$rs1 = $db->Execute('select * from table');
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
$rs2 = $db->Execute('select * from table') ;
print_r($rs1->fields); // array([0]=>'v0',[1] =>'v1') を表示します
print_r($rs2->fields); shows array(['col1']=>'v0',['col2'] =>'v1')
上記の例でわかるように、2 つのレコードセットが保存され、レコードセットが保存されるときに異なるアクセス モードが使用されます。 Execute() によって生成された後、$ADODB_FETCH_MODE を設定します。

ADOConnection

はデータベースに接続されたオブジェクトであり、SQL コマンドを実行し、相関コマンドや日付フォーマット コマンドなどの SQL コマンドを標準フォーマットするためのツール関数のセットを備えています。

その他の便利な関数

$recordset->Move($pos) は、データベース全体の前方スクロールをサポートします。これは問題ではありません。一時レコードをキャッシュに使用することで、後方スクロールをシミュレートできるためです。

$recordset->RecordCount() は、SQL コマンドによってアクセスされたレコードの数を返します。一部のデータベースは、それをサポートしていないため、-1 を返します。

$recordset->GetArray() は結果を配列の形式で返します。

rs2html($recordset) 関数は、渡されたレコードセットを HTML テーブル形式に変換します。関連する使用法は、次の例で太字で示されています。

include('adodb.inc.php');
include('tohtml.inc.php'); /* rs2html 関数が含まれます */
$conn = &ADONewConnection ( 'mysql');
$conn->PConnect('localhost','userid','password','database');
$rs = $conn->Execute('select * from table');
rs2html($rs); /* HTML テーブルへのレコードセット */
ファイルには他にも多くの便利な関数がリストされており、次の URL で見つけることができます: http://php.weblogs.com/adodb_manual

Advancedテーマ

新規および更新

次のデータをデータベースに追加するとします。

ID = 3
TheDate=mktime(0,0,0,8,31,2001) /* 2001 年 8 月 31 日 */
Note= Sugar それを中止しましょう

別のデータベースに切り替えるとき、新しいデータを追加できない場合があります。

最初の問題は、各データベースが異なるデフォルトの日付形式を使用するのに対し、MySQL は YYYY-MM-DD 形式を使用するのに対し、ADODB は異なるデータベース間で変換するための DBDate() 関数を提供することです。フォーマット。

次の問題は、一重引用符の表現です (使用しないでください)。MySQL では一重引用符を直接使用できますが、Sybase、Access、Microsoft SQL Server などの他のデータベースでは 2 つの一重引用符を使用します。が使用されている場合は (使用しないでください)、qstr() 関数がこの問題を解決できます。

これらの機能はどのように使用しますか?このように:

$sql = "INSERT INTO table (id, thedate,note) 値 ("
. $ID . ','
. $db->DBDate($TheDate) .','
. $ db->qstr($Note).")";
$db->Execute($sql);
ADODB には $connection->Affected_Rows() 関数もあります。これは、最後のデータによって影響を受けたデータを返します。 update または delete コマンド データ列の数、および $recordset->Insert_ID() 関数は、insert コマンドによって自動的に生成された最後のデータ列番号を返します。これら 2 つの関数を提供するデータベースは存在しないことに注意してください。

MetaTypes

レコードセット メソッド FetchField($fieldoffset) を通じてオブジェクトの 3 つの属性 (name、type、max_length) を返すことで、フィールドに関する詳細情報を取得できます。

例:

$recordset = $conn->Execute("select adate from table");
$f0 = $recordset->FetchField(0);
その結果、$f0->name の内容は 'adata'、$f0->type は 'date' になり、max_length が不明な場合はその内容は -1 になります。

異なるデータベースを扱うときの問題の 1 つは、各データベースが同じデータ型に対して異なる名前を持っていることです。たとえば、タイムスタンプ タイプは、あるデータベースでは datetime と呼ばれ、別のデータベースでは time と呼ばれるため、ADODB は MetaType ($type,$) を提供します。 max_length) 関数を使用して、次のデータ型を正規化します:

C: 文字型および varchar 型
X: テキストまたは長い文字 (例: 幅 255 バイトを超える)。
B: BLOB またはバイナリ イメージ
D : 日付
T: タイムスタンプ
L: 論理 (ブール値)
I: 整数
N: 数値 (float、double、money)

前の例では、

$recordset = $conn->Execute("select adate from table");
$f0 = $recordset->FetchField(0);
$type = $recordset->MetaType($f0->type, $f0->max_length);
print $type ; /* 'D を出力する必要があります。 ' */
Select コマンドの Limit と Top のサポート

ADODB には、レコードセットの部分的なコレクションを取得できる $connection->SelectLimit($sql,$nrows,$offset) 関数があり、この利点を採用しています。 Microsoft 製品での SELECT TOP の使用法と、PostgreSQL および MySQL での SELECT...LIMIT の使用法を比較します。元のデータベースがこの使用法を提供していない場合でも、この関数はこの使用法をシミュレートして提供します。

キャッシュのサポート

ADODB を使用すると、ファイル システムにレコードセット データを一時的に保存し、$connection->CacheExecute($secs2cache,$sql) および $connection->CacheSelectLimit($secs2cache,$) で次の関数を実行できます。 sql)、$nrows、$offset) を実行し、時間を節約するために実際にデータベースにクエリを実行する前に、設定された時間間隔に達するまで待機します。

PHP4 セッションのサポート

ADODB は PHP4 セッション ハンドラーもサポートしています。関連する機能については、http://php.weblogs.com/adodb-sessions を参照してください。

商用利用をお勧めします。
販売用の商用 PHP アプリケーション ソフトウェアを作成する予定がある場合は、ADODB を GPL に基づいて公開することもできます。つまり、商用アプリケーション ソフトウェアで合法的に引用し、プログラム コードの所有権を保持することができます。 ADODB の商用利用は強く推奨されており、この理由から社内で ADODB を使用しています。

結論

この記事を読んでくれてありがとう、ここにすべてを終わらせるための完全な歌詞があります。

やめてください

あなたはエーテル、私はエーテル、
あなたはエーテル、私はエーテル、エーテル、エーテル、ニーテル、ニーテル -
すべてをやめましょう

あなたはジャガイモが好きで、私はポタが好きです! -と、
あなたはトマトが好きで、私はトーマトが好きです
ポテト、ポタト、トマト、トマト -
すべてを中止しましょう

でも、もし私たちが電話をかけたら!すべてを終わらせたら、私たちは別れなければなりません
そして、もし私たちが別れることになったら、それは私の心を壊すかもしれません

それで、あなたがパジャマが好きで、私がパジャマが好きなら、私はパジャマを着てプレゼントします。起きてください、パジャマス
私たちはお互いを必要としていることを知っていますので、
すべてを中止したほうがいいです

2番目のリフレイン

あなたは笑いと言い、私は法律を言います
あなたは後だと言い、私は後だと言う
笑って、後、後、
すべてを中止しましょう

あなたはバニラが好き、私はバニラが好き
バニラ、チョコレート、ストロベリー -
すべてを中止しましょう

でも、ああ、もしすべてを中止したら、私たちは別れなければなりません
そして、ああ、もし私たちが別れるなら、それは私の心を壊すかもしれません。

それで、あなたが牡蠣を食べに行き、私がエルスターを食べるなら、私は牡蠣を注文して、エルスターをキャンセルします
私たちはお互いを必要としているので、
中止にしたほうがいいでしょう。すべてを中止してください

映画「Shall We Dance?」でフレッド・アステアとジンジャー・ロジャースによって紹介されたジョージとアイラ・ガーシュウィンの歌と歌詞

オリジナルの英語版: http://php.weblogs.com/adodb_tutorial









このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

修正: Windows 11 で Snipping ツールが機能しない 修正: Windows 11 で Snipping ツールが機能しない Aug 24, 2023 am 09:48 AM

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

iPhoneでApp Storeに接続できないエラーを修正する方法 iPhoneでApp Storeに接続できないエラーを修正する方法 Jul 29, 2023 am 08:22 AM

パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動作しているかどうかを確認してください。問題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認します。「AppStore に接続できません」問題は接続不良が原因である場合があるため、安定したインターネット接続があることを確認してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設定のリセット] > [設定])。 iOS バージョンを更新します。

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

watch4proとGTのどちらが優れていますか? watch4proとGTのどちらが優れていますか? Sep 26, 2023 pm 02:45 PM

Watch4proとgtはそれぞれ特徴や適用シーンが異なりますが、総合的な機能、高性能、スタイリッシュな外観を重視し、価格は高くてもいいという方にはWatch 4 Proの方が適しているかもしれません。高度な機能要件はなく、バッテリー寿命と手頃な価格を重視する場合は、GT シリーズの方が適しているかもしれません。最終的な選択は、個人のニーズ、予算、好みに基づいて決定する必要がありますが、購入する前に自分のニーズを慎重に検討し、さまざまな製品のレビューや比較を参照して、より情報に基づいた選択を行うことをお勧めします。

iPadOS 17.4 で iPad のバッテリー寿命を最適化する方法 iPadOS 17.4 で iPad のバッテリー寿命を最適化する方法 Mar 21, 2024 pm 10:31 PM

iPadOS 17.4 で iPad のバッテリー寿命を最適化する方法 バッテリー寿命の延長はモバイル デバイス エクスペリエンスの鍵であり、iPad がその良い例です。 iPad のバッテリーの消耗が早すぎると感じても、心配しないでください。iPadOS 17.4 には、デバイスの実行時間を大幅に延長できるトリックや微調整が多数あります。この詳細なガイドの目的は、情報を提供するだけではなく、iPad の使用方法を変え、全体的なバッテリー管理を強化し、充電せずにデバイスをより長く使用できるようにすることです。ここで概説したプラクティスを採用することで、個人のニーズや使用パターンに合わせてテクノロジーをより効率的かつ意識的に使用するための一歩を踏み出すことができます。主要なエネルギー消費者を特定する

Guan Zeyuanjiang Shuying が Huawei MateBook GT 14 を体験: テクノロジーとアートの完璧な組み合わせ Guan Zeyuanjiang Shuying が Huawei MateBook GT 14 を体験: テクノロジーとアートの完璧な組み合わせ Aug 10, 2024 pm 09:51 PM

8月8日、Huawei端末はHuawei MateBook GT14「Super Starlight Show」を正式に発売しました。有名な俳優の江淑英とリーグ・オブ・レジェンドプロフェッショナルリーグの公式解説者グアン・ゼユアンがライブブロードキャストルームのゲストとして登場し、ファーウェイの最新ノートブックであるHuawei MateBook GT14を個人的に体験しました。生放送中、Jiang ShuyingとGuan ZeyuanはHuawei MateBook GT14を大いに賞賛しました。 CNMOは、生放送中に江秀英氏、関澤源氏、ファーウェイのPC製品ライン社長がファーウェイMateBook GT14の分解を目撃したことに気づいた。 Huawei MateBook GT14の内部設計は非常に整っていて、高密度マザーボード設計を採用していることがわかります。マザーボードもキーボードから遠ざけるために部分的に沈んでいます。これです

请教怎么修改url某一参数的参数值呢?是要拆开了再拼回去吗 请教怎么修改url某一参数的参数值呢?是要拆开了再拼回去吗 Jun 13, 2016 am 10:24 AM

请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?那么请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?http://127.0.0.1/myo/newuser.php?mod=search&type=fastone比如现在我要修改mod=new要怎么做呢?------解决方案--------------------发送了请求

See all articles