このサイトにはプロモーションが含まれます

PHPとMySQLを接続するよーん

背景

JavaとOracleを接続する時の様にjarファイルを使用する接続を意識しすぎた事が原因で、PHPとMySQLの接続に戸惑ったので手順を書き残しておきます。

PHPとMySQLの接続はゲロ吐くほど簡単なので、あまり難しく考えないでくださいね〜。

やんやん

プログラマーとしてLEMP環境に主に生息しており、DevOps 的な立ち回りをしながらご飯を食べている当ブログの管理人のやんやんと申します。
最近はTmux使うのを辞めました。

 

手順

DBの用意

MySQLのインストールは済んでいる事を前提に話します。

まずは、データベースの作成とテーブルの作成を済ませます。

--データベース作成
CREATE DATABASE study;

--テーブル作成
CREATE TABLE studyContents(
no int(2),
name varchar(20) NOT NULL,
PRIMARY KEY(no)
)

--確認
mysql> desc studycontents;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| no    | int(2)      | NO   | PRI | NULL    |       |
| name  | varchar(20) | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

 

MySQLの接続

接続にはPDOクラスを使用します。

PDOクラスとはPHP Data Objectsの頭文字を取ったPHPが用意したDBへ簡単にアクセスするためのクラスです。

変数 = new PDO();

 

では、実際に使用していきましょう。

接続のためにPDOインスタンの引数に下記の値をセットしましょう。

  • データベース接続に必要な情報
  • ユーザー名
  • パスワード
try{
--定義 
   $dsn = 'mysql:dbname=study;host=localhost;charset=utf8mb4'; 
   $user   = 'root'; 
   $password = 'root'; 
--呼び出し 
   $db = new PDO($dsn, $user, $password);
   echo "接続しました";
catsch{
   return "データベースの接続に失敗しました".$e->getMessage();
}

 

注意点は以下の通りです。

データベース名とホスト名の記載ミス 「select user(), current_user();」で確認してください。
charasetの指定忘れ データ格納しているMySQLと受け取り側のPHPで文字コードが異なると文字化けの原因になります。

 

データ取得

接続が完了したので試しにデータを取ってみます。

データの取得は以下手順です。

  1. SELECT文の用意
  2. PREPAREメソッドにSELECT文をセット
  3. SQLインジェクション対策(※今回はやらない)
  4. EXCUTEメソッドでSQL文の実行
  5. 結果の取得及び出力
//1.SELECT分の用意
$x = "SELECT * FROM studyContents";

//2.PREPAREメソッドにSELECT文をセット
$a = $con->prepare($x);

4.EXCUTEメソッドでSQL文の実行
$a->execute();

//5.結果の取得及び出力
$result = $a->fetchAll(PDO::FETCH_ASSOC);

foreach($result as $r){
     echo $r;
}

 

注意!
結果を1行取得する→FETCH(ex:ログインユーザーのname,pw取得)
結果を複数行一気に取得→FETCHALL(ex:今月売れた商品のデータ取得)オプションはFETCH_ASSOCがデータの消費量が少ないのでオススメ。

オプションは4種類あるので、適宜調べる様に!!

 

Twitterでフォローしよう

読んでみーな
おすすめの記事