ほとんどの Web 開発アプリケーションにとって、データベースは非常に基本的な部分です。 PHP を使用している場合は、LAMP ファミリの重要なメンバーである MySQL も使用していることでしょう。
多くの初心者にとって、PHP を使用すると、特定の関数を含むコードをわずか数時間で簡単に作成できます。ただし、安定した信頼性の高いデータベースを構築するには、ある程度の時間とスキルが必要です。以下に、私がこれまでに犯した MySQL 関連の最悪の 11 の間違いを示します (そのうちのいくつかは、他の言語/データベースの使用にも反映されています)。
1. InnoDB の代わりに MyISAM を使用する
MySQL には多くのデータベース エンジンがありますが、最も遭遇する可能性が高いのは MyISAM と InnoDB です。
MySQLはデフォルトでMyISAMを使用します。ただし、非常に単純なデータベースや実験的なデータベースを作成する場合を除き、多くの場合、これは適切な選択ではありません。外部キー制約またはトランザクションはデータの整合性にとって非常に重要ですが、MyISAM はこれらをサポートしていません。また、レコードの挿入や更新を行うとデータテーブル全体がロックされるため、使用量が増えると作業効率が非常に悪くなります。
結論は簡単、InnoDBを使う。
2. PHPのmysql関数を使う
PHPは、それが作成された日から(または、ほとんど違いがないほど)MySQLライブラリ関数を提供しています。 PHP マニュアルには次のように書かれていますが、多くのアプリケーションは依然として mysql_connect、mysql_query、mysql_fetch_assoc などの関数を使用しています。
MySQL v4.1.3 以降を使用している場合は、mysqli 拡張機能を使用することを強くお勧めします。
mysqli (MySQL 拡張機能の拡張バージョン) には次の利点があります:
オプションのオブジェクト指向インターフェイス
SQL インジェクション攻撃を防止し、パフォーマンスを向上させるのに役立つ準備された式
より多くの式とトランザクション処理をサポートします
さらに、複数のデータベース システムをサポートしたい場合は、PDO を検討することもできます。
3. ユーザー入力を処理しない
これは #1 のように言えます: ユーザー入力を決して信頼しないでください。 JavaScript に依存せず、サーバー側の PHP を使用して各文字列を検証します。最も単純な SQL インジェクション攻撃では、次のコードが使用されます:
$username = $_POST["name"]; $password = $_POST["password"]; $sql = “SELECT userid FROM usertable WHERE username=’$username’ AND password=’$password’;” // run query…
ユーザー名フィールドに「admin';–」と入力するだけで、ハッキングされます。対応する SQL ステートメントは次のとおりです:
SELECT userid FROM usertable WHERE username=。 ' admin';
狡猾なハッカーは管理者としてログインできますが、パスワードフィールドはコメントアウトされているため、パスワードを知る必要はありません。
4. UTF-8は使用されません
私たち米国、英国、オーストラリアでは、英語以外の言語を考慮することはほとんどありません。私たちは誇りを持って「傑作」を完成させましたが、他の場所ではうまく機能しないことがわかりました。
UTF-8 は多くの国際化の問題を解決します。 PHP v6.0 より前では十分にサポートされていませんが、MySQL 文字セットを UTF-8 に設定することは妨げられません。
5. SQL よりも PHP を優先します
MySQL を短期間使用したことがある場合、問題を解決するためにすでに知っている言語を使用する傾向があり、冗長で非効率なコードを作成することになります。たとえば、MySQL に付属の AVG() 関数は使用せず、まずレコードセット内の値を合計し、次に PHP ループを使用して平均を計算します。
また、PHPループ内のSQLクエリにも注目してください。一般に、結果を反復処理するよりもクエリを実行する方が効率的です。
したがって、データを分析する際には、SQL の知識を知っておくと非常に役立ちます。
6. データベースクエリが最適化されていない
PHP パフォーマンスの問題の 99% はデータベースが原因であり、たった 1 つの悪い SQL クエリが Web アプリケーションを完全に麻痺させる可能性があります。 MySQL の EXPLAIN ステートメント、Query Profiler、およびその他の多くのツールは、これらの悪質な SELECT を見つけるのに役立ちます。
7. データ型を正しく使用できない
MySQL は、数値、文字列、日付などのデータ型を提供します。時刻を保存する場合は、DATE 型または DATETIME 型を使用します。この時点で INTEGER または STRING 型を使用すると、その型を定義するために INTEGER または STRING を使用できる限り、SQL クエリが非常に複雑になります。
多くの人は、シリアル化された PHP オブジェクトを格納するために文字列を使用するなど、一部のデータ形式を承認なしにカスタマイズする傾向があります。これによりデータベースの管理が容易になる可能性がありますが、MySQL のデータ ストアとしては不十分になり、後で障害が発生する可能性が高くなります。
8. クエリで * を使用します
データテーブルのすべての列のデータを返すために * を使用しないでください。これは怠惰です。必要なデータを抽出する必要があります。すべてのフィールドが必要な場合でも、データ テーブルは必然的に変更されます。
9. インデックスを使用したり、インデックスを使いすぎたりしないでください
一般原則は次のとおりです: select ステートメントの where 句で表されるフィールドはインデックスを使用する必要があります。
例えば、数値ID(主キー)とメールアドレスを含むユーザーテーブルがあるとします。ログインするとき、MySQL は電子メールに基づいて正しい ID を検索する必要があります。インデックスが使用されている場合 (ここでは電子メール)、MySQL はより高速な検索アルゴリズムを使用して、電子メールを瞬時にでも見つけることができます。それ以外の場合、MySQL は正しい電子メール アドレスが見つかるまで各レコードを順番にチェックすることしかできません。
各フィールドにインデックスを追加する人もいますが、残念ながら、これらのインデックスは INSERT または UPDATE の実行後に再生成する必要があり、パフォーマンスに影響します。したがって、必要な場合にのみインデックスを追加してください
10. バックアップを忘れる
まれではありますが、データベースがクラッシュするリスクは依然としてあります。ハードドライブが損傷したり、サーバーがクラッシュしたり、Web ホスティングプロバイダーが破産したりする可能性があります。 MySQL データが失われると致命的となるため、自動バックアップが設定されているか、コピーが用意されていることを確認してください。
11. おまけの間違い - 他のデータベースの使用を検討しないでください
PHP 開発者にとって、MySQL は最も広く使用されているデータベース システムかもしれませんが、それが唯一の選択肢ではありません。 PostgreSQL と Firebird が最も有力な候補です。どちらもオープンソースであり、どちらも企業に買収されていません。 Microsoft は SQL Server Express、Oracle は 10g Express を提供しており、どちらもエンタープライズ クラスのデータベースの無料バージョンです。場合によっては、小規模な Web アプリケーションや組み込みアプリケーションの場合、SQLite が有力な代替手段となることがあります。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPにより、インタラクティブなWebコンテンツを簡単に作成できます。 1)HTMLを埋め込んでコンテンツを動的に生成し、ユーザー入力またはデータベースデータに基づいてリアルタイムで表示します。 2)プロセスフォームの提出と動的出力を生成して、XSSを防ぐためにHTMLSPECIALCHARSを使用していることを確認します。 3)MySQLを使用してユーザー登録システムを作成し、Password_HashおよびPreprocessingステートメントを使用してセキュリティを強化します。これらの手法を習得すると、Web開発の効率が向上します。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは依然として動的であり、現代のプログラミングの分野で重要な位置を占めています。 1)PHPのシンプルさと強力なコミュニティサポートにより、Web開発で広く使用されています。 2)その柔軟性と安定性により、Webフォーム、データベース操作、ファイル処理の処理において顕著になります。 3)PHPは、初心者や経験豊富な開発者に適した、常に進化し、最適化しています。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
