検索
ホームページバックエンド開発PHPチュートリアル簡単な PHP 作成データベース クラス コード共有_PHP チュートリアル

簡単な PHP 作成データベース クラス コード共有_PHP チュートリアル

Jul 21, 2016 pm 03:25 PM
phprightコード書く共有オリジナルデータベース単純親切欲しい

エッセイにオリジナリティを含めるべきかどうかわかりません。
それでは、最初のブログ投稿です。
3 つのクラスがあります:
1. フィルター入力 (軽量)
input_filter クラス
$_GET、$_POST などのパラメーターのフィルター処理を担当します
戻り値の型は、made_sql クラスのパラメーターとして使用されます
2. SQL文に変換
class made_sql
パラメータの型は配列とテーブル名(文字列)、配列のキー名はテーブルのカラム名、値は挿入値
戻り値の型は文字列、mysql ->query メソッドのパラメーターとして使用されます
3. データベース クエリ
mysql クラス
単一列モードを使用し、静的メソッドを使用してオブジェクトを取得します。詳細については、instanceof 演算子の関数を参照してください

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

class input_filter
{
private $ input_all; // フィルターされる配列
private $rustle; // フィルターされた結果
// コンストラクターのパラメーターは $_GET または $_POST これらの
関数です__construct($input_C)
{
if(is_array($input_C ))
$this->input_all = $input_C ;
else
echo 'パラメータが無効です'
//そうでない場合、PHP は型を認識しません。初めて配列をマージするときです
$this->rustle = array();
}
private function filter_arr() // Main function
{
foreach ($this->input_all as $key_input => $val_input)
{
//キー名が文字列でない場合は、エラー メッセージ
// キーの場合
if(!is_string($key_input)) // エラー
{
echo 'このキーは文字列ではありません' ;
return false;
}
// # は mysql です
$ key_one = str_replace('#','',$key_input); ;
// # の HTML エスケープ文字が見つからなかったので、代わりに empty を使用しました
// この関数は ' のみを変換します" には、すべてのシンボルをエスケープする同様の関数があります
$val = htmlspecialchars($val_one, ENT_QUOTES,'UTF-8');
//merge
$rustle_one = array($key=>$val);
/ /Merge array
$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(); Q s SQL ステートメントに変換します:


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

Class Madesql
{ private $ cnow_ary; // 配列パラメータの型 Private $ CNAME_STR; /最後の SQL ステートメントの文字列型 public function __construct($Cary,$Cname) {
// 受け取ったパラメータの型が配列かどうかを確認します
if (! is_array($Cary))
return false;
else
$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; // 列名combin
$vals_sql = $vals_sql.', ''. $val_ary.''' ; //値の組み合わせ
}
// 前の foreach アルゴリズムに問題があるため、最初の文字はカンマです
// sunstr_replace() を使用して、最初の位置 (0) から開始して削除し、1 文字だけを置換します (1)
$cols_sql = substr_replace($vals_sql,'',0,1);
$vals_sql = substr_replace($vals_sql,' ',0,1);
$this->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','password','dbname');
$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) ;
}
}


それでは、使い方をまとめます
コードをコピーします コードは次のとおりです。 input_data = $filter->get_filter();
$madeSql = 新しい madesql($input_data,'tableName');
$mysql = mysql::Mysql_object();
if( $mysql ->query($sql) )
echo 'Ok';
else
echo 'failure';


データベースへの書き込み操作を完了するには、これらの数行のコードのみが必要です
さらに、コンストラクターのプライベートとパブリックのプロパティについて話しましょう。 問題は、本では MySQL シングルトン モードのコンストラクターがプライベートとして宣言されているのですが、シングルトン モードがない場合、コンパイル エラーが発生することです。確認したところ、PHPではオブジェクトを作成できませんでした。

その理由は、オブジェクトの作成がクラスの外で行われることが多く、コンストラクターにアクセスできないという問題が発生するためです。 単一列モードでは、独自のクラスにオブジェクトが作成されるため、プライベート メソッドへのアクセスに制限はありません。

私は当初、シングルトン モードは同じオブジェクトの作成を防ぐだけだと考えていましたが、シングルトン モードはコンストラクターをカプセル化できるようです。これにより、filter_input クラスの結果を直接使用できるという前提が得られます。 madesql クラスのパラメータは次のとおりです:
フォームの名前はデータベースの列名と同じである必要があります。そうしないと、多くのことが無駄になります。



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

www.bkjia.com

tru​​e

技術記事エッセイにオリジナリティを含めるべきだとは知りませんでした。さて、最初のブログ投稿です。 3 つのクラスがあります: 1. フィルター入力 (軽量) クラス input_filter は、$_GET、$_POST... などのパラメーターのフィルター処理を担当します。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
どのデータをPHPセッションに保存できますか?どのデータをPHPセッションに保存できますか?May 02, 2025 am 12:17 AM

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

どのようにPHPセッションを開始しますか?どのようにPHPセッションを開始しますか?May 02, 2025 am 12:16 AM

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッションの再生とは何ですか?また、セキュリティをどのように改善しますか?セッションの再生とは何ですか?また、セキュリティをどのように改善しますか?May 02, 2025 am 12:15 AM

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。

PHPセッションを使用する際のパフォーマンスの考慮事項は何ですか?PHPセッションを使用する際のパフォーマンスの考慮事項は何ですか?May 02, 2025 am 12:11 AM

PHPセッションは、アプリケーションのパフォーマンスに大きな影響を与えます。最適化方法には以下が含まれます。1。データベースを使用してセッションデータを保存して応答速度を向上させます。 2。セッションデータの使用を削減し、必要な情報のみを保存します。 3.非ブロッキングセッションプロセッサを使用して、同時実行機能を改善します。 4.セッションの有効期限を調整して、ユーザーエクスペリエンスとサーバーの負担のバランスを取ります。 5.永続的なセッションを使用して、データの読み取り時間と書き込み時間を減らします。

PHPセッションはCookieとどのように異なりますか?PHPセッションはCookieとどのように異なりますか?May 02, 2025 am 12:03 AM

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

PHPはユーザーのセッションをどのように識別しますか?PHPはユーザーのセッションをどのように識別しますか?May 01, 2025 am 12:23 AM

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションを保護するためのベストプラクティスは何ですか?PHPセッションを保護するためのベストプラクティスは何ですか?May 01, 2025 am 12:22 AM

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

PHPセッションファイルはデフォルトで保存されていますか?PHPセッションファイルはデフォルトで保存されていますか?May 01, 2025 am 12:15 AM

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン