<?php
  $dbh = new PDO('mysql:host=DBHOST;dbname=test;charset=utf8', USERNAME, PASSWORD);
  $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);  // 静的プレースホルダを指定
  $sth = $dbh->prepare("select * from test WHERE a=? and c=?");
  $sth->setFetchMode(PDO::FETCH_NUM);
  $a = 'abc';
  $c = 1;
  $sth->bindParam(1, $a, PDO::PARAM_STR);
  $sth->bindParam(2, $c, PDO::PARAM_INT);
  $sth->execute();
  while ($data = $sth->fetch()) {
    var_dump($data);
  }
@see http://blog.tokumaru.org/2011/08/pdo.html
ポイント1
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); // 静的プレースホルダを指定
静的プレースホルダを設定する。
⇒これでSQLインジェクションはひとまず大丈夫
ポイント2
  $sth = $dbh->prepare("select * from test WHERE a=? and c=?");
ポイント3
$sth->bindParam(1, $a, PDO::PARAM_STR);
bindParam+型指定
外部プログラマさんに説明する時は、このページを見せよう(ㆁᴗㆁ✿)












