PHP デザイン パターン ファクトリ パターン_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();//データベース接続を閉じる
}
* @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

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









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

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

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

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

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

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

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