PDOを利用してMySQLにアクセスをする

以前行ったMySQLのアクセスですが、今回はPDOというクラスを用いてアクセスしてみましょう。

参考;ドットインストール

アクセスと終了まで

try {
    $pdo = new PDO('mysql:host=localhost;dbname=lesson','user','pwd');
} catch (PDOException $e) {
    var_dump($e->getMessage());
    exit;
}

//ここに処理を設定します。

echo "success!";
$pdo = null;

テーブルの中の値を取得する。

$sql = "select * from テーブル名";
$stmt = $pdo->query($sql);
foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $user) {
    var_dump($user);
}
echo $pdo->query("select count(*) from テーブル名")->fetchColumn() . "件みつかりました。";

値をテーブルに書き込む。(prepareはエスケープ処理もしてくれる)

$stmt = $pdo->prepare("insert into users (name,email,password) values (?,?,?)");
$stmt->execute(array("n","e","p"));

?を使うとわかりにくいのであれば書きでもOK

$stmt = $pdo->prepare("insert into users (name,email,password) values (:name,:email,:password)");
$stmt->execute(array(":name"=>"n2",":email"=>"e2",":password"=>"p2"));

値をひとつひとつ設定していれる事もできる。

$stmt = $pdo->prepare("insert into users (name,email,password) values (:name,:email,:password)");
$stmt->bindParam(":name", $name);
$stmt->bindParam(":email", $email);
$stmt->bindParam(":password", $password);
$name = "n10";
$email = "e10";
$password = "p10";
$stmt->execute();

追加されたデータのIDの取得も行う事ができる。

echo $pdo->lastInsertId();

変更の処理「nではじまるユーザー名のemailをdummyに変更」

$stmt = $pdo->prepare("update users set email = :email where name like :name");
$stmt->execute(array(":email"=>"dummy", ":name"=>"n%"));

削除の処理「パスワードがp10のものを削除」

$stmt = $pdo->prepare("delete from users where password = :password");
$stmt->execute(array(":password"=>"p10"));

削除された、挿入された、アップデートされた数を数えてくれます。

echo $stmt->rowCount() . " records deleted";
  • written on 2012.10.31
  • category : php

Next / Prev

前の記事:

次の記事:

Same Category

Page top↑