UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#199 DB接続する為のクラスを作成 MYSQL版

記入日:2023-07-27 編集日:2023-07-27

DB接続する為のクラスを作成 MYSQL版について解説してみようと思います。

この記事を読むと(約5分)
DB接続する為のクラスを作成 MYSQL版についてイメージできます。

DB接続する為のクラスを作成 MYSQL版

1. config.php ファイル:

// 接続情報を定義
define('DB_HOST', 'your_database_host');
define('DB_USERNAME', 'your_database_username');
define('DB_PASSWORD', 'your_database_password');
define('DB_DATABASE', 'your_database_name');
define('DB_CHARSET', 'utf8mb4');

2. Database クラス:

require_once 'config.php';

class Database{
  private $host;
  private $username;
  private $password;
  private $database;
  private $charset;

  private $pdo;

  public function __construct(){
    $this->host = DB_HOST;
    $this->username = DB_USERNAME;
    $this->password = DB_PASSWORD;
    $this->database = DB_DATABASE;
    $this->charset = DB_CHARSET;

    $this->connect();
  }

  private function connect(){
    $dsn = "mysql:host={$this->host};dbname={$this->database};charset={$this->charset}";

    try {
      $this->pdo = new PDO($dsn, $this->username, $this->password);
      $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (PDOException $e) {
      die("Database connection failed: " . $e->getMessage());
    }
  }

  public function getPdo(){
    return $this->pdo;
  }
}

これで、config.php ファイルに接続情報を設定し、Database クラスを使用してPDO接続を取得できます。

実際に使う際には、これらのコードが記述されたファイルを適切な場所に配置してください。 そして、Database クラスのインスタンスを作成し、PDO接続を取得することができます。

// Databaseクラスのインスタンスを作成し、PDO接続を取得します
$database = new Database();
$pdo = $database->getPdo();

// これ以降、$pdoを使用してクエリを実行できます
// 例:$pdo->query("SELECT * FROM table_name");

接続情報を変更する場合は、config.php ファイルの値を修正するだけで、コードを変更する必要がなくなります。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。