PHP プログラマーがよく犯す MySQL の間違い_PHP チュートリアル
ほとんどの 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 インジェクション攻撃は、次のコードを利用します:
リーリーユーザー名フィールドに「admin';--」と入力するだけで、ハッキングされます。 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 が有力な代替手段となることがあります。

ホット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 接続エラー 1049 に対処するにはどうすればよいですか? MySQL は一般的に使用されるリレーショナル データベース管理システムであり、多くの開発者やシステム管理者がデータの保存と管理に MySQL を使用しています。ただし、MySQL を使用している場合、接続エラー 1049 の問題が発生することがあります。この記事では、接続エラー 1049 の原因と、この問題を解決するためのいくつかの方法を紹介します。 MySQL 接続エラー 1049 は通常、データベースが存在しないか、データベース名が間違っていることが原因で発生します。 MySQLサービスに接続する場合

タイトル: Unknowncolumn'column_name'in'fieldlist'-MySQL エラーの解決方法: フィールド リストの列が不明です。特定のコード例が必要です。クエリまたは操作に MySQL データベースを使用する場合、次のようなエラー メッセージが表示されることがあります:「Unknowncolumn'」 column_name'in'fieldlist'"、つまり、フィールド リストに不明な列エラーが存在します。これは通常、

MySQL 接続エラー 1017 に対処するにはどうすればよいですか? MySQL は、Web サイトの開発やデータ ストレージで広く使用されているオープン ソースのリレーショナル データベース管理システムです。ただし、MySQL を使用すると、さまざまなエラーが発生する可能性があります。一般的なエラーの 1 つは、接続エラー 1017 (MySQL エラー コード 1017) です。接続エラー 1017 は、データベース接続の失敗を示します。通常、ユーザー名またはパスワードが間違っていることが原因で発生します。 MySQL が指定されたユーザー名とパスワードを使用した認証に失敗した場合

MySQL データベースの初期化失敗の問題を解決するには、次の手順に従います。 権限をチェックし、適切な権限を持つユーザーを使用していることを確認します。データベースがすでに存在する場合は、それを削除するか、別の名前を選択します。テーブルが既に存在する場合は、テーブルを削除するか、別の名前を選択します。 SQL ステートメントに構文エラーがないか確認してください。 MySQL サーバーが実行中であり、接続可能であることを確認します。正しいポート番号を使用していることを確認してください。他のエラーの詳細については、MySQL ログ ファイルまたはエラー コード ファインダーを確認してください。

この記事では、前回の Mysql 操作で PHP から返されたエラー メッセージの数値エンコードについて詳しく説明します。編集者が非常に実用的であると考えたので、参考として共有します。この記事を読んで何かを得ることができれば幸いです. . PHP を使用して MySQL エラー情報を返す 数値エンコーディング はじめに mysql クエリを処理するときにエラーが発生する場合があります。これらのエラーを効果的に処理するには、エラー メッセージの数値エンコーディングを理解することが重要です。この記事では、php を使用して Mysql エラー メッセージの数値エンコーディングを取得する方法を説明します。エラー情報の数値エンコードを取得する方法 1. mysqli_errno() mysqli_errno() 関数は、現在の MySQL 接続の最新のエラー番号を返します。構文は次のとおりです: $erro

MySQL は、非常に一般的に使用されているオープンソースのリレーショナル データベース管理システムであり、安定性、効率性、柔軟性などの特徴を備えており、さまざまな種類のアプリケーションで広く使用されています。 MySQLを利用していると必ずデータベースの復旧作業が発生しますが、MySQLデータベースの復旧状況をいかに正確に確認するかがより重要な課題となっています。 MySQL データベースのリカバリの進行状況は、MySQL エラー ログを表示することで取得できます。 MySQL エラー ログには、すべてのデータベース操作記録が記録されます。

完璧な PHP プログラマーの履歴書の書き方 競争の激しい就職市場では、求職者にとって優れた履歴書は非常に重要です。 PHP プログラマーにとって、完璧な履歴書を書くことは特に重要です。履歴書は自分のスキルや経験をアピールする手段であるだけでなく、雇用主の注目を集める鍵でもあるからです。この記事では、完璧なPHPプログラマーの職務経歴書の書き方を最初から最後まで詳しく解説します。ステップ 1: 簡潔で魅力的な履歴書テンプレートを選択する 簡潔で魅力的な履歴書テンプレートを選択することは、履歴書を書く最初のステップです。

就職活動の成功率を向上させる: 優れた PHP プログラマーの職務経歴書を書くためのヒント 現代社会において、就職活動はすべての卒業生にとって直面する重要な課題となっています。仕事に応募するとき、履歴書は最も重要な部分です。優れた履歴書があれば、面接に勝ち残ることができ、さらには就職できるかどうかも決まります。特に PHP プログラマーのような競争の激しいポジションでは、優れた履歴書をどのように書くかがすべての求職者にとって重要な問題となっています。以下では、優れた PHP プログラマーの職務経歴書を書くためのヒントをいくつか紹介します。
