シンプルな PHP 作成データベース クラス コード共有
3 つのクラスがあります:
1. フィルター入力 (軽量)
input_filter クラス
$_GET、$_POST などのパラメーターのフィルター処理を担当します
戻り値の型は配列であり、made_sql クラスのパラメーターとして使用されます
2. SQL文へ
class made_sql
パラメータの型は配列とテーブル名(文字列)、配列のキー名はテーブルの列名、値は挿入値です
戻り値の型は文字列で、次のように使用されますmysql ->query メソッド パラメータ
3. データベース クエリ
class mysql
シングルカラム モードを使用し、静的メソッドを使用してオブジェクトを取得します。詳細については、instanceof 演算子の関数を参照してください
コードをコピー コードは次のとおりです:
class input_filter
{
private $input_all; // フィルタリングされる配列
private $rustle; // フィルタリングされた結果
// コンストラクターのパラメーターは、これらの
public function __construct($input_C)
if(is_array) ($input_C))
$this-> ;input_all = $input_C ;
else
echo 'パラメータが無効です';
//初期化しないと、初めて配列をマージするときに PHP がその型を認識しません
$ this->rustle = array();
}
private function filter_arr() // メイン関数
{
foreach ($this->input_all as $key_input =>$val_input)
{
//If キーname が文字列ではない場合、エラー メッセージを返します
// キー
if(!is_string($key_input)) // エラー
{
echo 'このキーは文字列ではありません'
return false;
// # は mysql Note です。
$key_one = str_replace('#' ,'',$key_input);
$key = htmlspecialchars($key_one,ENT_QUOTES,'UTF-8'); が見つかりませんでした。 # の HTML エスケープ文字なので、何も置き換えません
$val_one = str_replace(' #','',$val_input); この関数は < > を変換するだけです。すべてのシンボル
$val = htmlspecialchars($val_one,ENT_QUOTES,'UTF-8' );
// マージ
$rustle_one = array($key=>$val);
// 配列をマージ
$this-> Rustle = array_merge($this->rustle,$rustle_one);
}
}
//この関数は少し冗長なので、将来の拡張のために残しておきます
public function get_filter_rustle()
{
$this->filter_arr( );
return $this->rustle ;
}
}
メソッドの呼び出し:
コードをコピーする コードは次のとおりです:
$filter = new filter_input($_GET) // または $_POST
$input_data = $ filter->get_filter();
SQL ステートメントに変換します:
コードをコピーします。 コードは次のとおりです:
class madesql
{
private $Cnow_ary
private $Cname_str; ; //最後の SQL ステートメントの文字列型
public function __construct($Cary,$Cname)
{
// 受け取ったパラメータの型が配列かどうかを確認します
if (! is_array($Cary))
return false; $this->Cnow_ary = $Cary; // 書き込まれた値
$this->Cname_str = $ Cname; // データベーステーブル名
25 }
private function setSql() // メイン関数、SQL ステートメントを生成します
{
foreach ( $this->Cnow_ary as $key_ary => $val_ary )
{
$cols_sql = $cols_sql.','.$key_ary //列名の組み合わせ
$vals_sql = $vals_sql.', '' .$val_ary.''' ; //値の組み合わせ
}
// 前の foreach アルゴリズムに問題があるため、最初の文字はカンマです
// したがって、最初の桁から削除するには sunstr_replace() を使用します(0)、1 文字のみを置換します (1)
$cols_sql = substr_replace($vals_sql,'',0,1);
$vals_sql = substr_sql,'',0,1); ;insert_sql =
'INSERT INTO '.$this->Cname_str.' ( '
.$cols_sql.' ) VALUES ( '.$vals_sql.' )' // ステートメント整形
}
// 拡張子
public の場合function getSql()
{
$this->setSql();
return $this->insert_sql;
}
3. データベース クエリ クラスは、書籍では単一列モードを参照しています (静的メソッドを使用してオブジェクトを取得し、スクリプト内にデータベース クエリ クラスのインスタンスが 1 つだけ存在するようにします)
このクラスではシングルトン モードが少し使用されていると思います。使用される
コピー コードは次のとおりです:
class mysql
{
private $connect;
static $objectMysql; // オブジェクトを保存します
private function __construct() 7 {
// このコンストラクターはオブジェクトの作成時に呼び出されます。初期化には
$connect = mysql_connect('db address' ,'パスワード','データベース名');$this->db = mysql_select_db('db',$connect);
}
public static function Mysql_object()
{
//instanceof 演算子は、オブジェクトがクラスまたはインターフェイスのインスタンスに属しているかどうかを確認するために使用されます。私が言ったことはあまり標準的ではありません...
//$objectMysql が mysql(self) のインスタンスではない場合は、インスタンスを作成します
if(! self::$objectMysqlinstanceof self)
self::$objectMysql = new mysql () ;
//この時点で $objectMysql はすでにオブジェクトです
return self::$objectMysql;
}
public function query($sql)
{
return mysql_query($sql,$this->db);
}
}
それでは、使い方をまとめます
コードをコピー コードは次のとおりです。
$filter = new filter_input($_GET) // または $_POST
$input_data = $filter->get_filter( );
$ madeSql($input_data,'テーブル名');
$mysql = mysql::Mysql_object() ; ($sql) )
echo 'Ok';
else
echo 'failure';
データベースへの書き込み操作を完了するには、これらの数行のコードのみが必要です
さらに、プライベートとパブリックについて話しましょう。コンストラクターの問題、本の mysql シングルトン モード コンストラクターは private として宣言されており、シングルトン モードのないクラスはコンパイル エラーを生成します。つまり、PHP はオブジェクトを作成できません。
その理由は、オブジェクトの作成がクラスの外で行われることが多く、コンストラクターにアクセスできないという問題が発生するためです。 単一列モードでは、独自のクラスにオブジェクトが作成されるため、プライベート メソッドへのアクセスに制限はありません。
当初、シングルトン モードは同じオブジェクトの作成を防ぐだけだと思っていましたが、シングルトン モードではコンストラクターをカプセル化できるようです。これにより、filter_input クラスの結果をパラメーターとして直接使用できるという前提が得られます。 madesql クラスの内容は次のとおりです:
フォームの名前はデータベースの列名と同じである必要があります。そうしないと、多くのことが無駄になります

ホット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)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。
