ホームページ >データベース >mysql チュートリアル >PHP で MySQL データベースに接続する

PHP で MySQL データベースに接続する

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-24 03:16:29367ブラウズ

Connecting to a MySQL Database in PHP

PHP は一般に、最も広く使用されているオープンソースのリレーショナル データベース管理システムの 1 つである MySQL と組み合わせて、小規模プロジェクトと大規模プロジェクトの両方でデータを高速かつ効率的に処理します。

単純な Web サイトを作成する場合でも、高度な Web アプリケーションを作成する場合でも、PHP を MySQL データベースに接続する方法を知る必要があります。

MySQL と PHP の統合の概要

MySQL は、オープンソースのリレーショナル データベース管理システム (RDBMS) として知られており、そのパフォーマンス、信頼性、使いやすさが広く評価されています。

小規模な Web サイトから大規模で複雑なエンタープライズ システムに至るまで、あらゆる種類のアプリケーションに高度に適応します。 MySQL はその柔軟性と効率性により、強固なデータベース基盤を求める開発者にとって好ましい選択肢となっています。

サーバーサイドのスクリプト言語である PHP は、MySQL とシームレスに連携して、インタラクティブなデータ駆動型の Web ページを構築します。これらを組み合わせることで、Web サイトや Web アプリケーションに最適なオプションとなる強力なバックエンド ソリューションが提供されます。

MySQL データベースのセットアップ

MySQL データベースをセットアップするには、まず、MySQL コマンドライン インターフェイス (CLI) または phpMyAdmin などの Web ツールを使用してデータベースを作成します。 CLI を使用して、CREATE DATABASE コマンドを利用して新しいデータベースを開始します。

この簡単なコマンドを使用すると、アプリケーションのデータに対応できる空のデータベースが作成されます。グラフィカル インターフェイスをお好みの場合は、phpMyAdmin を使用すると、数回クリックするだけで同じタスクを簡単に実行できます。

データベースを作成した後、セキュリティ目的で適切な権限を持つユーザーを設定する必要があります。 CREATE USER コマンドを使用して新しいユーザーを追加し、GRANT コマンドを使用して特定の権限をユーザーに割り当てることができます。

PHP MySQL 拡張機能の選択: MySQLi と PDO

MySQL の PHP 拡張機能を選択する場合、MySQLi と PDO という 2 つの主なオプションがあります。それぞれに異なる機能と利点があるため、決定は特定のニーズと将来の潜在的な要件によって異なります。

MySQLi 拡張機能
MySQLi は MySQL Enhanced の略で、MySQL データベースを操作するためのアップグレードされた方法を提供し、古い方法と比較して優れた機能を提供します。

MySQLi ではオブジェクト指向 API と手続き型 API のどちらかを選択できるため、コーディング スタイルに応じて非常に柔軟になります。ただし、MySQLi は MySQL データベースでのみ動作するため、それを超えて拡張する予定がある場合は、その使用が制限されます。

PDO (PHP データ オブジェクト)
PDO は、MySQL だけでなく 12 の異なるデータベース システムをサポートするため、より汎用性の高いオプションです。これにより、将来データベースを切り替えることが予想される場合、より価値のある選択肢となります。

PDO は完全にオブジェクト指向のアプローチを使用し、準備されたステートメントなどの高度な機能を提供し、さまざまなデータベース環境間でのセキュリティと移植性を強化します。

接続を確立する

MySQL データベースへの信頼できる接続を確立することは、動的な PHP アプリケーションを構築する最初のステップです。

MySQLi を使用した MySQL への接続
MySQLi を使用して MySQL データベースに接続するには、オブジェクト指向アプローチまたは手続き型アプローチのいずれかを選択できます。オブジェクト指向の方法では、サーバー名、ユーザー名、パスワードを使用して mysqli クラスの新しいインスタンスを作成するだけです。

手続き型アプローチでは、「mysqli_connect()」関数を呼び出して接続を確立します。接続したら、接続ステータスを確認することが重要です。これは、オブジェクト指向バージョンでは「$conn->connect_error」を使用するか、手続き的に「mysqli_connect_error()」を使用して行うことができます。

PDO を使用した MySQL への接続
PDO に接続する場合は、接続文字列でサーバーとデータベースの詳細を直接指定して、PDO クラスの新しいインスタンスを作成します。例外を効果的に処理するには、「PDO::ATTR_ERRMODE」属性を使用してエラー モードを「PDO::ERRMODE_EXCEPTION」に設定します。

エラーが発生した場合に例外がスローされるようになり、エラーをより正確に管理できるようになりました。また、PDO では接続セットアップ時に有効なデータベースを指定する必要があることに注意してください。それ以外の場合、例外がスローされ、接続は失敗します。

基本的なデータベース操作の実行

MySQL データベース内のデータを効果的に管理するには、基本的な SQL 操作の実行方法と、その操作がどのように機能するかを理解する必要があります。

クエリの実行
MySQL データベースと対話するには、SELECT、INSERT、UPDATE、DELETE などの基本的な SQL クエリを実行する必要があります。

MySQLi を使用すると、オブジェクト指向アプローチの場合は「$conn->query($sql)」、手続き型アプローチの場合は「mysqli_query($conn, $sql)」でこれらのクエリを実行できます。

PDO の場合、データベースを変更するクエリには「$conn->exec($sql)」を使用し、取得には「$conn->query($sql)」を使用します。各方法はコマンドを実行する簡単な方法を提供し、データベースを効率的に管理するのに役立ちます。

準備されたステートメント
プリペアド ステートメントは、アプリケーションを SQL インジェクションから安全に保つのに役立ちます。 MySQLi では、「$conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)")」を使用してステートメントを準備し、「$stmt->bind_param("ss」を使用してパラメータをバインドできます。 "、$name、$email)"。

PDO の場合、「$conn->prepare("INSERT INTO users (name, email) VALUES (:name, :email)")」を使用し、「$stmt->execute(['name'」で実行します) => $name, '電子メール' => $電子メール])'.

エラー処理とデバッグ

MySQLi を使用しているか PDO を使用しているかにかかわらず、MySQL データベースへの安定した接続を維持し、SQL クエリの問題を特定するには、エラーの効果的な処理とデバッグが不可欠です。

  • MySQLi: MySQLi の使用時にエラーを処理するには、オブジェクト指向アプローチの場合は「$conn->error」を使用するか、手続き型メソッドの場合は「mysqli_error($conn)」を使用できます。これらの関数はデータベース エラーのキャプチャと表示に役立ち、接続や SQL クエリに関連する問題のデバッグが容易になり、問題を効果的に特定して対処できるようになります。
  • PDO: PDO は、エラーを効率的に管理するために独自の例外クラス PDOException を使用します。 「try...catch」ブロックを利用すると、例外を検出してそれに応じて応答できます。エラーが発生した場合、「catch(PDOException $e)」を使用すると特定のエラー メッセージを出力でき、エラーの処理方法をより詳細に制御できるため、コードのデバッグと保守がはるかに簡単になります。

データベース接続を閉じる

オブジェクト指向スタイルの MySQLi の場合は '$conn->close()' を使用するか、手続き型アプローチの場合は 'mysqli_close($conn)' を使用するか、または '$conn = null' の設定を使用してデータベース接続を明示的に閉じることができます。 PDO用。 PHP はスクリプトの最後に接続を自動的に閉じますが、サーバーのリソースを解放してパフォーマンスを向上させるには、手動で接続を閉じることをお勧めします。

データベース接続が必要なくなった場合は、必ずデータベース接続を閉じてください。プリペアド ステートメントを利用して SQL インジェクションを防御し、アプリケーションのセキュリティを強化します。

以上がPHP で MySQL データベースに接続するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。