情弱エンジニアのなかのblog

一人前のエンジニアになる為のブログです

DBについて理解しよう!!

難しいことはドットインストールで覚えよう

今回はPHPMySQLを組み合わせた使い方を学習したのでつまずいた点などアップします! ちなみにドットインストールの「PHPデータベース入門」を学びました

1.データの追加をしたいときとは?

2.検索の仕方とは?

3.bindValueの使い方は?

1.データの追加をしたいときとは?

結論から言えばいろいろあるのですが、とりあえずexec()を説明します、最初は何してるのか分かりませんでした。

// connect
  $db = new PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD);
  $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  // insert
  $db->exec("insert into users (name, score) values ('nonaka', 55)");

まあそのまんまなんですが、これでレコードに追加しているわけです 他にもデータを追加するにはprepare()なども使えるのですがまずはどれか一つ試してみて 結果を確認するとスムーズに進めます

2.検索の仕方とは?

当然ながら検索も使えます、こんな感じです

   $stmt = $db->query("select * from users");
   $stmt = $db->prepare("select score from users where score > ?");
   $stmt->execute([60]);
   $stmt = $db->prepare("select name from users where name like ?");
   $stmt->execute(['%t%']);

どちらもデータベースの基本的な検索方法をPHPで行っているだけなのですが 最初に見たときは( ゚д゚)ポカーン でした、、、

3.bindValueの使い方は?

同じ名前の人のスコアをたくさん追加したいというときにbindValueは使えます(果たしてそんな時は来るのか)

$stmt = $db->prepare("insert into users (name, score) values (?, ?)");

  $name = 'nonaka';
  $stmt->bindValue(1, $name, PDO::PARAM_STR);
  // $stmt->bindValue(':name', $name, PDO::PARAM_STR);
  $score = 23;
  $stmt->bindValue(2, $score, PDO::PARAM_INT);
  $stmt->execute();
  $score = 44;
  $stmt->bindValue(2, $score, PDO::PARAM_INT);
  $stmt->execute();

こういった感じで使えます、これも使って慣れるのが一番です!

大分説明不足感が否めないのですが何分ドットインストールを見ただけなので悪しからず、、 これじゃあ分からんわという人はこちらへ

http://dotinstall.com/lessons/basic_php_db

またつまずくことあったらアップしてく予定です。。