リスを倒す 『初めてのPHP,MySQL,JavaScript&CSS』

『初めてのPHP,MySQL,JavaScript&CSS』勉強奮闘記

10-2. PHPからデータベースを操作する①データベースへの接続

全然どんずまってて進まず。
ここからが勝負だったのに。くそー。

もう一回やり直しだ!


さて、10章では、データベース接続からデータ挿入、検索結果の表示、データの更新などをやってきます。(うまくいけば、、、うまくいかせる、応援ありがとよ。。。)

今回は、データベースへの接続方法を勉強します。
PHPのブログラム内からデータベースに接続するにはPHPで用意されたAPI(Application Programing Interface)を利用します。
PHPにはMySQLに接続できるAPIが2つあります。
・mysqliクラス
・PDO


1-1. mysqlクラスによる接続


mysqliはオブジェクト指向型の接続方式があります。
MySQLサーバーに接続するには、mysqliクラスからnew演算子を使ってオブジェクトを生成します。

オブジェクト生成時に、ホスト名、ユーザー名、パスワード、データベース名を指定します。
オブジェクトが生成されて$mysqliに格納されます。これで接続完了です。

以下のコードを入れて

<?php
$mysqli= new mysqli('ホスト名(localhost)', 'ユーザー名', 'パスワード', 'データベース名');

if( $mysqli->connect_error){
die('Connect Error:('. $mysqli->connect_errno .')'.$mysqli->connect_error);
}

print 'mysqlクラスで接続に成功しました。';
$mysqli->close();
?>

以下の結果がでれば成功です!
(この結果を出すのに2時間くらいかかった…SQLを最初からやり直した…)
f:id:taro-blog2323:20160922013543p:plain

1-2. PDOによる接続

PDOはPHPで標準にインストールされているC言語で開発された拡張モジュールです。
(どやって感じで書いているけどよくわかっていない。。。)

接続方法はmysqliクラスと同じで、オブジェクトを生成するときに接続を完了します。
new演算子を使ってPDOクラスからオブジェクトを生成し、この時引数にDSN(Data Source Name)を指定します。DSNは接続のための情報を決まった順序に組み立てた文字列のことです。

DSN接続辞としてデータベースの種類を指定し、次にコロンを使って接頭辞とその他の項目を区切ります。

以下のコードを入れてみましょー

<?php
$pdo = new PDO('mysql:host=localhost;dbname=sampledb;charaset=utf8', 'ユーザー名','パスワード');

print'PDOクラスによる接続に成功しました';

$pdo = null;
?>
?>


結果はこう!
f:id:taro-blog2323:20160922014733p:plain


少ないですが、いじょー
次回はPDOについて説明します。

SQLのユーザー生成とパスワード設定をごまくりかした?だまくらかした?とにかく、ごまかして進めてしまったせいで、PHPの文の中でどこのデータベースを設定して、それに入るパスワードはとかそういう初歩的なものにつまづいてしまいました。ずっとFetal Errorとにらめっこしてた…
そしてqiutしまくった。
結局ぐじゃぐじゃになっちゃったから、最初からやり直してどうにかデータベースに接続できました。。。

もう2時か、寝よう。。