PHPとMySQLを接続するよーん

背景

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

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

手順

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でフォローしよう

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