ホームページ >バックエンド開発 >PHPチュートリアル >PHPカプセル化データベース操作クラス(リンクデータベース)_PHPチュートリアル
Web サイトを開発するときのより合理的なアプローチは、よく使用するプログラムの一部を関数にするか、クラスに閉じて、再利用して開発コストを節約することです。私がよく使用するクラスを紹介します。
オブジェクト指向テクノロジーの基礎を持つプログラマーは、わずか 1 日で書き始めることができます。 PHP がデータベースにアクセスすると、文字エンコーディングの問題、SQL 構文エラー、PHP によるデータ レコード オブジェクトと戻りオブジェクトの処理など、さまざまな問題が頻繁に発生します。ここでは、データベースの追加、削除、追加、変更などの操作をカプセル化したデータベース操作クラスを作成しました。これは非常に便利です。このクラスを使用すると、Web サイトのバックエンド開発を高速化できます。
利点:
1. 便利で高速なデータベース操作はインターフェースを呼び出すだけです。
2. 統一エンコード(utf8)なので文字化けしにくい
3. たとえば、フロントエンドリクエストを処理するバックグラウンドプログラム (test.php) + テーブルカプセル化クラス (user.class.php) + データベースカプセル化クラス (db.class.php) + 構成情報 (configuration.php) の構造を明確にします。 php)
次の例には、configuration.php + db.class.php + user.class.php + test.php という 4 つのファイルが同じディレクトリに配置されています。
最初はデータベース設定ファイルクラスconfiguration.phpです
コードは次のとおりです | コードをコピー |
?> |
次のステップはデータベース操作クラス db.class.php です
コードは次のとおりです | コードをコピー |
require_once("./configuration.php") //設定定数ファイルを導入します date_default_timezone_set(TIMEZONE); /** * クラス名:DB * 説明: データベース操作クラス */ クラスDB { パブリック $host //サーバー public $username //データベースのユーザー名 public $password; //データパスワード public $dbname; //データベース名 public $conn; //データベース接続変数 /** * DBクラスコンストラクター */ パブリック関数 DB($host=DB_HOST,$username=DB_USER,$password=DB_PASSWORD,$dbname=DB_NAME) { $this->host = $host; $this->ユーザー名 = $ユーザー名; $this->password = $password; $this->dbname = $dbname; } /** * データベース接続を開く */ パブリック関数 open() { $this->conn = mysql_connect($this->ホスト,$this->ユーザー名,$this->パスワード); Mysql_select_db($this->dbname); Mysql_query("SET CHARACTER SET utf8"); } /** *データ接続を終了します */ パブリック関数 close() { Mysql_close($this->conn); } /** * SQLステートメントを通じてデータを取得します * @return: array() */ パブリック関数 getObjListBySql($sql) { $this->open(); $rs = mysql_query($sql,$this->conn); $objList = array(); While($obj = mysql_fetch_object($rs)) { If($obj) { $objList[] = $obj; } } $this->close(); $objList を返します; } /** * データベーステーブルにデータを挿入します * @param:$table、テーブル名 * @param: $columns、テーブル内のすべてのフィールド名を含む配列。デフォルトの空の配列は、すべて順序付けされたフィールド名です * @param: $values、すべてのフィールドに対応する属性値を含む配列 */ public function insertData($table,$columns=array(),$values=array()) { $sql = '.$table に挿入 .'( '; for($i = 0; $i $sql .= $columns[$i]; If($i < sizeof($columns) - 1) { $sql .= ','; } } $sql .= ') 値 ( '; for($i = 0; $i $sql .= "'".$values[$i]."'"; If($i < sizeof($values) - 1) { $sql .= ','; } } $sql .= ' )'; $this->open(); Mysql_query($sql,$this->conn); $id = mysql_insert_id($this->conn); $this->close(); $id を返します; } /** * テーブルの属性を通じてデータを取得します */ パブリック関数 getDataByAtr($tableName,$atrName,$atrValue){ @$data = $this->getObjListBySql("SELECT * FROM ".$tableName." WHERE $atrName = '$atrValue'"); if(count($data)!=0)$data を返す; NULL を返します。 } /** * テーブル内の「id」を介してレコードを削除します */ パブリック関数 delete($tableName,$atrName,$atrValue){ $this->open(); $deleteResult = false; if(mysql_query("DELETE FROM ".$tableName." WHERE $atrName = '$atrValue'")) $deleteResult = true; $this->close(); if($deleteResult) true を返します; それ以外の場合は false を返します; } /** *テーブル内の属性値を更新します */ パブリック関数 updateParamById($tableName,$atrName,$atrValue,$key,$value){ $db = 新しい DB(); $db->open(); if(mysql_query("UPDATE ".$tableName." SET $key = '$value' WHERE $atrName = '$atrValue' ")){ //$key不要单引号 $db->close(); true を返します; } 他{ $db->close(); false を返します; } } /* * @description: 1 つのテーブルのすべてのプロパティ名を取得します * @param: $tbName 表名 * @return:字符串数组 */ パブリック関数フィールド名($tbName){ $resultName=array(); $i=0; $this->open(); $result = mysql_query("SELECT * FROM $tbName"); while ($property = mysql_fetch_field($result)){ $resultName[$i++]=$property->名前; } $this->close(); $resultName を返します; } } ?> |
次のステップはテストです。 phpmyadmin で test0 データベースを構築し、その中にテーブル ユーザーを作成しました。次に、PHP を使用して、データベース内のユーザー テーブルに対応するユーザー クラスを作成します。
user.class.php
コードは次のとおりです | コードをコピー |
require_once("./db.class.php"); パブリック関数 insert(){
$db = 新しい DB(); |
コードをコピー | |
header("Content-Type:text/html; charset=utf8"); require_once("./user.class.php"); $user = 新しいユーザー("HelloWorld","123456");
$user->insert(); foreach ($users as $u) {
echo " |