PHPでDBに簡単に接続できるPDOというものを使ってデータベースにアクセスします。
MANPを起動させphpMyAdminにアクセスしてDBを作ります。
データベース用アカウントの作成
まず初めにデーターベースにアクセス可能なアカウントを作成していきます。
phpMyAdminのトップページにアクセス→上のタブのDataBaseをクリック→アカウントを追加したいデーターベース欄の権限をチェックする→画面下の方にあるユーザーアカウントを作成するをクリックします。
ユーザー名を入力→ホスト名をローカル→パスワードを入力→もう一度入力→権限の付与の選択→実行で完了です
アカウントを使いDBを扱っていく
ここからコードを書いていきます。やっていきます。
$dns = 'mysql:host=localhost;dbname=study;charaset=utf8';
$name = 'user';
$pass = 'password';
try{
//データベース、ユーザー名、パスワードから接続をする
$dbh = new PDO($dns,$user,$pass,[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
echo "接続成功";
}catch(PDOException $e){
echo '接続失敗' . $e->getMessage();
exit();
}
インスタンスの作成時にオプション(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)をつけエラーが発生した場合にはエラーメッセージを受け取れます。
データベースから取得してみる
別ページからpostされた値のページを取得していきます。
$id = $_POST["id"];
$sql = "SELECT * FROM userDB WHERE id = :id";
$stmt = $dbh->prepare($sql); //sql文の準備
$stmt->bindvalue(":id", (int)$id, PDO::PARAM_INT); //:idにidの値をINT形式で代入
$stmt->execute(); //実行
$result = $stmt->fetch(PDO::FETCH_ASSOC);
手順としては上記のものです。
bindvalueは一度に複数の置き換えは不可能
fetchAllで複数帰ってきます、PDO::FETCH_ASSOCにしているのは配列で複数返ってきた場合データが扱いやすいからです。
終わりに
今回はデータベースに接続して値の取得を行いましたが他にもできます。これからも勉強を続けていこうと思います。