早速、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プログラミングに関する処理に重点をおき
ポーカー訳判定を作っていきたいと思います!
コメントを残す