早速、php環境が整ったので、phpでDBにアクセスしてみる

下記サイトを参考にしてみる

https://qiita.com/icelandnono/items/0ae83baa779c293897a5

このサイトについて、未経験だと理解することが、難しいと思うが、

ますこれを元に接続のみ行ってみる

接続

index.php

<?php
try {
    $pdo = new PDO ( 'mysql:host=localhost;dbname=kumadadb;charset=utf8', 'username', 'password' );
    print '接続に成功しました。';
} catch ( PDOException $e ) {
    print "接続エラー:{$e->getMessage()}";
}
$sql = null;

これで,urlにアクセスした際に、

接続に成功しました。

と表示されればよし

new PDO の後に

mysql:host = localhost これは多分そのままで大丈夫

dbname : 作ったデータベース名

charset :  文字形式 これも多分そのままで大丈夫

ユーザ名

パスワード

をカッコ内で羅列することで接続できる

人が作ったクラスだから、これはそういう決まりらしいということで。

んで

try {

} catch ( PDOException $e ) {

}

これ、try/catch構文という プログラム構文の一つで

tryあとの{}内で、エラーが起きた場合、

catchの{}の処理に移行するという構文

だから今回、 tryの中で、接続処理するけどエラーが出た場合、

catchに移行してエラーだよって表示処理に移行するイメージ。

テーブル取得表示

またサイトを元にテーブル内容を出力

index.php

<?php
try {
    $pdo = new PDO ( 'mysql:host=localhost;dbname=kumadadb;charset=utf8', 'username', 'password' );
    print '接続に成功しました。';

    foreach ( $pdo->query ( 'select * from fortune' ) as $row2 ) {
        echo '<p>';
        echo $row2 ['id'], ':';
        echo $row2 ['fortune'], ':';
        echo '</p>';
    }
} catch ( PDOException $e ) {
    print "接続エラー:{$e->getMessage()}";
}
$sql = null;

これでテーブルの内容が出力される訳だが

そもそもforeachってなんなのって話になるだろう

プログラムでめちゃくちゃ使う構文が

for

if

この二つ

try/catchの100倍くらい使う。

ifについて

https://webkaru.net/php/comparison-operators/

forについて

https://techacademy.jp/magazine/4896

ifとforについては かなり使うから、色々試してみてみた方がいい

foreach ってのがforの進化系みたいなやつで

データ全部ぶん回すってこと

’select * from fortune’ の結果を全部ぶん回す

だから、foreachの中はデータの数だけ処理されるのね

先頭から処理されて、$row2 に毎回データが入る

だから、

echo '<p>';
echo $row2 ['id'], ':';
echo $row2 ['fortune'], ':';
echo '</p>';

これが全データ分処理されるって感じ(echo <p>は改行)

結果こんな感じに出力されるわけ。

ランダムにレコードを取得する

下記記事を参考にテーブルからランダムに取得した

https://qiita.com/iri/items/b82795b6a3c0a8df62a5

$qry = $pdo->prepare('select * from fortune ORDER BY RAND() LIMIT 1');
$qry->execute();
$luckyItem = $qry->fetch();
echo "<br>".$luckyItem['fortune'];

excute()てなんなのってことは

下記記事を参考しフワッと理解しました

https://techacademy.jp/magazine/40771

ちょっと通信周りは概念が複雑なので
次回からは phpプログラミングに関する処理に重点をおき

ポーカー訳判定を作っていきたいと思います!