ホームページ バックエンド開発 PHPチュートリアル PHP デザイン パターン ファクトリ パターン_PHP チュートリアル

PHP デザイン パターン ファクトリ パターン_PHP チュートリアル

Jul 21, 2016 pm 03:48 PM
mysql php 工場 よく使われる 操作する データベース モデル プログラム 親切 デザインパターン

私はmysqlデータベースをよく使うので、プログラムはmysqlのデータベース操作クラスを記述するだけです。専門家全員が他のすべてのカテゴリーを書き留めてくれるように願っています。コピーを私に送っていただくのが最善です。
db_mysql.php は db.php インターフェースを継承し、データベース操作のさまざまなメソッドを実装します。データベース プラットフォームが変更されないことが確実な場合は、ファクトリ クラスは必要ありません。これを使用してください。

コードをコピーします コードは次のとおりです:

/**
* @author 黄建文
* @version V1.0
* @email hjwtp2005@qq.com
* @data 2008-12-16
* ================== ================================================
* @example
* 'db_mysql.php' をインクルードします。
* $db=new db_mysql('localhost','root','admin','emtit');
* $sqlstr="SELECT * FROM メンバー WHERE memberid=1";
* var_dump($db->get_one($sqlstr));
* =============================================== ===================
*/
include 'db.php';
class db_mysqlimplements db {

private $connid ;

パブリック関数 db_​​mysql($dbhost,$username,$passowrd,$dbname='',$dbcharset='utf8'){
$this->connid=mysql_connect($dbhost,$username,$passowrd);
if (! $this->connid){
$this->halt('MySQL サーバーに接続できません')
}
if (emptyempty($dbcharset)){
$dbcharset='utf8';
}
/ / mysqlのバージョンが4.1以上の場合、データベースの文字セット設定を有効にする
if($this->version() > '4.1' && $dbcharset)
{
mysql_query("SET NAMES '".$ dbcharset."' " , $this->connid);
}
// mysql バージョンが 5.0 以降の場合、SQL モードを設定します
if($this->version() > '5.0')
{
mysql_query("SET sql_mode=''" , $this->connid)
}
if (!emptyempty($dbname)){
$this->select_db($dbname);
/**
* データベースを選択
*
* @paramknown_type $dbname
*/
パブリック関数 select_db($dbname){
mysql_select_db($dbname,$this->connid)

}
/**
* SQL ステートメントを実行します
*
* @paramknown_type $sqlstr
*/
パブリック関数クエリ($ sqlstr){
$query =mysql_query($sqlstr,$this->connid);
if (!$query){
$this->halt('MySQL クエリ エラー', $sqlstr); $query;
}
/**
* クエリレコードを取得します
*
* @return 不明
*/
パブリック関数 get_one($sqlstr){
$query=$this->query($sqlstr);
$rs = $this->fetch_array($)クエリ);
$this ->free_result($query);
return $rs ;
/**
* 結果セットから連想配列として行を取得します
* @param resource データベースクエリ結果リソース
* @param string 戻り値の型を定義します
* @return array
*/
public function fetch_array($query, $result_type = MYSQL_ASSOC)
{
return mysql_fetch_array( $query, $result_type)
}

/**
* 前回の MySQL 操作の影響を受けたレコード行数を取得します
* @return int
*/
public function_rows()
{
return mysql_affected_rows($this->connid)
}
/**
* 結果セット内の行数を取得します
* @return int
*/
パブリック関数 num_rows($クエリ)
{
return mysql_num_rows($query);

/**
* 結果セット内のフィールドの数を返します
* @return int
*/
パブリック関数 num_fields($query)
{
return mysql_num_fields($query);
/**
* 結果メモリを解放します
*
* @paramunknown_type $query
* @return bool
*/
パブリック関数 free_result($query)
{
return mysql_free_result($query);
}
/**
* 前の INSERT 操作によって生成された ID を取得します
* @return int
*/
public function insert_id()
{
return mysql_insert_id( $this->connid);

/**
* MySQL サーバー情報を取得します
*
* @return string
*/
パブリック関数 version()
{
return mysql_get_server_info($this->connid);
/**
* MYSQL 接続を閉じる
*
* @return bool
* /
パブリック関数 close ()
{
return mysql_close($this->connid);
}
/**
* エラー文字列を返します
*
* @return string
*/ private 関数 error(){
return @mysql_error($this->connid) ;
}
/ **
* エラー番号を返します
*
* @return int
*/
プライベート関数 errno(){
return intval(@mysql_errno($this->connid))
}
/**
* エラーメッセージを出力します
*
* @param string $message
* @param string $sql
*/
プライベート関数 停止($message = ' ', $sql = ''){
exit("MySQL クエリ:$sql
MySQL エラー:".$this->error()."
MySQL エラー番号:" .$this-> ;errno()."
Message:$message");
}
}
?>



db.php データベース操作のメソッドを定義します。


コードをコピー

コードは次のとおりです:

interface db {

function select_db($dbname);//データベースを選択
function query($sqlstr);//SQL文を実行
function get_one($sqlstr);//SQL文を実行レコードは 1 つだけ取得されます
function fetch_array($query); //結果セットから 1 行を連想配列として取得します
functionaffected_rows();//操作の影響を受けるレコードの行数を返します
function num_rows($query) );//結果を取得
function num_fields($query);//結果setのフィールド数を返す
function free_result($query);//リソースを解放
function insert_id(); //最後に挿入されたレコードの ID を返す
function version();//Database version
function close();//データベース接続を閉じる
}

db_factory.php データベース ファクトリ クラスを作成します。データベース プラットフォームをより便利にするには、このクラスを使用する必要があります

コードをコピーします コードは次のとおりです:
/**
* @author 黄建文
* @version v1.0
* @email hjwtp2005@qq.com
* @example
* $db=db_factcory::create('MYSQL','localhost','root','admin' 、'emtit');
* $sqlstr="SELECT * FROM メンバー WHERE memberid=1";
* $db->get_one($sqlstr);
*/
include 'db_mysql.php';
class db_factory {
function db_factory() {
}
static function create($type ,$dbhost,$username,$password,$dbname='',$dbcharset=''){
switch ($type){
case 'MYSQL':
return new db_mysql($dbhost,$username,$password, $dbname,$dbcharset);
case 'SQLSERVER':
return new db_sqlserver($dbhost,$username,$password,$dbname,$ dbcharset);
case 'ACCESS':
新しい db_access($dbhost,$username ,$password,$dbname,$dbcharset);
case 'ORACLE':
新しい db_oracle($dbhost,$username,$password, $dbname,$dbcharset);
}
return false;
function __destruct() {
}
}
?>


http://www.bkjia.com/PHPjc/319675.html

tru​​ehttp://www.bkjia.com/PHPjc/319675.html技術記事私はmysqlデータベースをよく使うので、プログラムはmysqlのデータベース操作クラスを記述するだけです。専門家全員が他のすべてのカテゴリーを書き留めてくれるように願っています。コピーを私に送っていただくのが最善です。 db_mysql.php は db.php インターフェースを継承し、...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

MySQL:初心者向けのデータ管理の容易さ MySQL:初心者向けのデータ管理の容易さ Apr 09, 2025 am 12:07 AM

MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。

Navicatプレミアムの作成方法 Navicatプレミアムの作成方法 Apr 09, 2025 am 07:09 AM

NAVICATプレミアムを使用してデータベースを作成します。データベースサーバーに接続し、接続パラメーターを入力します。サーバーを右クリックして、[データベースの作成]を選択します。新しいデータベースの名前と指定された文字セットと照合を入力します。新しいデータベースに接続し、オブジェクトブラウザにテーブルを作成します。テーブルを右クリックして、データを挿入してデータを挿入します。

NAVICATでSQLを実行する方法 NAVICATでSQLを実行する方法 Apr 08, 2025 pm 11:42 PM

NAVICATでSQLを実行する手順:データベースに接続します。 SQLエディターウィンドウを作成します。 SQLクエリまたはスクリプトを書きます。 [実行]ボタンをクリックして、クエリまたはスクリプトを実行します。結果を表示します(クエリが実行された場合)。

NavicatでMySQLへの新しい接続を作成する方法 NavicatでMySQLへの新しい接続を作成する方法 Apr 09, 2025 am 07:21 AM

手順に従って、NAVICATで新しいMySQL接続を作成できます。アプリケーションを開き、新しい接続(CTRL N)を選択します。接続タイプとして「mysql」を選択します。ホスト名/IPアドレス、ポート、ユーザー名、およびパスワードを入力します。 (オプション)Advanced Optionsを構成します。接続を保存して、接続名を入力します。

NAVICATは、MySQL/Mariadb/PostgreSQLおよびその他のデータベースに接続できません NAVICATは、MySQL/Mariadb/PostgreSQLおよびその他のデータベースに接続できません Apr 08, 2025 pm 11:00 PM

NAVICATがデータベースとそのソリューションに接続できない一般的な理由:1。サーバーの実行ステータスを確認します。 2。接続情報を確認します。 3.ファイアウォール設定を調整します。 4.リモートアクセスを構成します。 5.ネットワークの問題のトラブルシューティング。 6.許可を確認します。 7.バージョンの互換性を確保します。 8。他の可能性のトラブルシューティング。

MySQL:簡単な学習のためのシンプルな概念 MySQL:簡単な学習のためのシンプルな概念 Apr 10, 2025 am 09:29 AM

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

さまざまなデータベースシステムに列を追加するための構文の違いは何ですか さまざまなデータベースシステムに列を追加するための構文の違いは何ですか Apr 09, 2025 pm 02:15 PM

and:mysql:Alter table_name add column_name data_type; postgresql:column column_name data_typeを変更するcolumn column_name datape; oracle:alter table_name add(column_name data_type);

NavicatのローカルMySQLに接続する方法 NavicatのローカルMySQLに接続する方法 Apr 09, 2025 am 07:45 AM

NAVICATを使用してローカルMYSQLデータベースに接続するには:接続を作成し、接続名、ホスト、ポート、ユーザー名、およびパスワードを設定します。接続をテストして、パラメーターが正しいことを確認します。接続を保存します。接続リストから新しい接続を選択します。接続するデータベースをダブルクリックします。

See all articles