背景
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で文字コードが異なると文字化けの原因になります。 |
データ取得
接続が完了したので試しにデータを取ってみます。
データの取得は以下手順です。
- SELECT文の用意
- PREPAREメソッドにSELECT文をセット
- SQLインジェクション対策(※今回はやらない)
- EXCUTEメソッドでSQL文の実行
- 結果の取得及び出力
//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がデータの消費量が少ないのでオススメ。
結果を複数行一気に取得→FETCHALL(ex:今月売れた商品のデータ取得)オプションはFETCH_ASSOCがデータの消費量が少ないのでオススメ。
オプションは4種類あるので、適宜調べる様に!!