PHP_PHP チュートリアルで PDO を使用する方法
この記事には PDO のインストールは含まれませんが、PDO の使用法を単に要約するだけです。
最初の PDO アプリケーションの構築を開始し、Web ドキュメント ディレクトリに pdo.php ファイルを作成します。
[php]
$dsn = "mysql:host=localhost;dbname=test";
$db = 新しい PDO($dsn, 'root', '');
$count = $db->exec("INSERT INTO foo SET name = 'lix',gender='mail',time=NOW()");
エコー $カウント
$db = null
?>
$dsn = "mysql:host=localhost;dbname=test";
DSN (データ ソース) の構築に使用されます。内部の情報には、データベースの種類が mysql、ホスト アドレスが localhost、データベース名が test が含まれます。それだけです。データベースごとにデータソースの構築方法が異なります。
$db = 新しい PDO($dsn, 'root', '');
PDO オブジェクトを初期化します。コンストラクターの最初のパラメーターはデータ ソース、2 番目のパラメーターはデータベース サーバーに接続するユーザー、3 番目のパラメーターはパスワードです。
エコー $count;
正常に接続された PDO オブジェクトを呼び出してクエリを実行します。このクエリは、PDO::exec() メソッドを使用すると、レコードに影響する結果を返します。最後に、オブジェクト リソースを終了する必要があります:
デフォルトでは、これは長い接続ではありません。データベースへの長い接続が必要な場合は、array(PDO::ATTR_PERSISTENT => true) のように最後にパラメーターを追加する必要があります。
$db = 新しい PDO($dsn, 'root', '', array(PDO::ATTR_PERSISTENT => true));
データを取得したい場合
[php]
$rs=$db->query("SELECT * FROM foo");
foreach($rs->fetch() as $row){
?>
も使えます
[php]
$rs = $db->query("SELECT * FROM foo");
while($row = $rs->fetch()){
print_r($row);
}
?>
すべてのデータを一度に取得します
[php]
$rs = $db->query("SELECT * FROM foo");
$result_arr = $rs->fetchAll();
print_r($result_arr);
?>
結果は次のようになります:
[php]
配列
(
(
[ID] = > 1
[0] => 1
[名前] = & gt;
[1] =>
[性別] = >
[2] => 男性
[時間] = & gt; 2006-10-28 23:14:23
[3] => 2006-10-28 23:14:23
)
}
[php]
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);
$rs = $db->query("SELECT * FROM foo");
$rs->setFetchMode(PDO::FETCH_ASSOC);
$result_arr = $rs->fetchAll();
print_r($result_arr);
?>
setAttribute() メソッドは、PDO 属性を設定します。主な属性は、PDO::ATTR_CASE、PDO::ATTR_ERRMODE などです。ここで設定する必要があるのは、PDO::ATTR_CASE、つまり、関連するインデックスを使用する場合です。データセットを取得します。関連付けられたインデックスは大文字または小文字です。いくつかのオプションがあります:
PDO::CASE_LOWER -- 列名を強制的に小文字にする
PDO::CASE_NATURAL -- 列名はオリジナルの方法です
PDO::CASE_UPPER -- 列名を強制的に大文字にする
setFetchMode メソッドを使用して、結果セットを取得するための戻り値のタイプを設定します。同じタイプは次のとおりです。
PDO::FETCH_ASSOC -- 連想配列形式
PDO::FETCH_NUM -- 数値インデックス配列形式
PDO::FETCH_BOTH -- どちらも配列形式で使用でき、これがデフォルトです
PDO::FETCH_OBJ -- 前の mysql_fetch_object() と同様のオブジェクトの形式
もちろん、一般的には PDO::FETCH_ASSOC を使用します。具体的に何を使用するかは、必要に応じて異なります。他の取得タイプについては、マニュアルを参照してください。
上記のデータ取得方法に加えて、次のこともできます:
[php]
$rs = $db->prepare("SELECT * FROM foo");
$rs->execute();
while($row = $rs->fetch()){
print_r($row);
}
?>
指定したレコードのフィールドの結果を取得したい場合は、PDOStatement::fetchColumn():
を使用できます。
[php]
$rs = $db->query("SELECT COUNT(*) FROM foo");
$col = $rs->fetchColumn();
エコー $col
?>
概要:
クエリ操作は主に PDO::query()、PDO::exec()、PDO::prepare() です。 PDO::query() は主に、記録された結果を返す操作、特に SELECT 操作に使用されます。PDO::exec() は主に、INSERT、UPDATE、DELETE などの結果セットを返さない操作に使用されます。結果は、現在の操作によって影響を受ける列の数を返します。 PDO::prepare() は主に前処理操作です。前処理で SQL ステートメントを実行するには $rs->execute() を使用する必要があります。このメソッドはパラメータをバインドすることができ、これだけでは説明できません。マニュアルやその他のドキュメントを参照できます。
結果セットを取得するための主な操作は、PDOStatement::fetchColumn()、PDOStatement::fetch()、PDOStatement::fetchALL() です。 PDOStatement::fetchColumn() は、フェッチ結果で指定された最初のレコードのフィールドです。デフォルトは最初のフィールドです。 PDOStatement::fetch() はレコードを取得するために使用され、PDOStatement::fetchAll() はすべてのレコード セットを 1 つに取得するために使用されます。結果を取得するには、PDOStatement::setFetchMode を通じて必要な結果セットのタイプを設定します。 。
【エラー処理】
1. オブジェクト指向のアプローチまず、オブジェクト指向のアプローチを使用して接続エラーなどに対処する方法を見てみましょう:
[php]
試してみてください{
$db = 新しい PDO('mysql:host=localhost;dbname=test', $user, $pass);
$db = null
"エラー: " . $e->getMessage() "
";
死ぬ();
}
?>
ここでは、PHP 5 のオブジェクト指向例外処理機能を使用します。例外が発生した場合、PDOException が初期化されて例外クラスが初期化されます。
PDOException例外クラスの属性構造:
[php]
クラス PDOException は例外を拡張します
{
Public $errorInfo = null; // エラー情報には PDO::errorInfo() または PDOStatement::errorInfo() を呼び出すことでアクセスできます
Protected $message; // 例外情報。Exception::getMessage() を使用してアクセスできます
Protected $code; // SQL ステータス エラー コード。Exception::getCode() を使用して
にアクセスできます。
}
?>
PHP 5 の組み込み例外処理クラス構造を簡単に見てみましょう:
[php]
クラス例外
{
// プロパティ
Protected $message = '不明な例外' // 例外メッセージ
;
protected $code = 0 // ユーザー定義の例外コード
;
保護された $file;
保護された $line;
// メソッド
最終関数 getMessage(); // 例外メッセージを返す
最終関数 getCode(); // 例外コードを返す
Final function getFile(); // 例外が発生したファイル名を返します
Final function getLine(); // 例外が発生したコード行番号を返します
最終関数 getTrace() // backtrace() 配列
Final function getTraceAsString(); // 文字列にフォーマットされた getTrace() 情報
}
?>
同様に、コード内で getFile() と getLine() を適切に呼び出してエラーを特定し、デバッグをより便利にすることができます。
2. プロセス指向のアプローチ
$db = 新しい PDO('mysql:host=localhost;dbname=test', $user, $pass);
$rs = $db->query("foo から aa,bb,cc を選択");
if ($db->errorCode() != '00000'){
Print_r($db->errorInfo());
出る
}
$arr = $rs->fetchAll();
print_r($arr);
$db = null
?>
PDO オブジェクトと PDOStatement オブジェクトには errorCode() メソッドと errorInfo() メソッドがあります。エラーがない場合、errorCode() は 00000 を返します。それ以外の場合は、いくつかのエラー コードが返されます。 errorInfo() は、PHP および MySQL で定義されたエラー コードとエラー情報を含む配列を返します。配列の構造は次のとおりです。
[php]
配列
(
[0] => 42S22
[1] => 1054
[2] => 「フィールドリスト」に不明な列「aaa」があります
)
Heda Li Xin のクレイジー コーディング ライフからの抜粋
http://www.bkjia.com/PHPjc/478395.html
www.bkjia.com
http://www.bkjia.com/PHPjc/478395.html

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。
