SQL/データベース操作

接続
$dbname = 'test';
$host = 'localhost';
$user = 'root';
$password = '';
$dns = 'mysql:dbname='.$dbname.';host='.$host.';charset=utf8';

try {
    $dbh = new PDO($dns, $user, $password,
        array(
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
    );
    if ($dbh == null) {
        print_r('接続失敗').PHP_EOL;
    } else {
        print_r('接続成功').PHP_EOL;
    }
} catch(PDOException $e) {
    echo('Connection failed:'.$e->getMessage());
    die();
}
 
	
取得、表示
// SELECT文を変数に格納
$sql = "SELECT * FROM sample";
 
// SQLステートメントを実行し、結果を変数に格納
$stmt = $dbh->query($sql);
 
// foreach文で配列の中身を一行ずつ出力
foreach ($stmt as $row) {
 
  // データベースのフィールド名で出力
  echo $row['email'].':'.$row['password'];
}
	
更新
//email:ccc@cccのパスワードの値をaaaaに更新
$sql = "UPDATE sample SET password = :password WHERE email = 'ccc@ccc'";
 
// 更新する値と該当のIDは空のまま、SQL実行の準備をする
$stmt = $dbh->prepare($sql);
 
// 更新する値と該当のIDを配列に格納する
$params = array(':password' => 'aaaa');
 
// 更新する値と該当のIDが入った変数をexecuteにセットしてSQLを実行
$stmt->execute($params);
追加
// INSERT文を変数に格納
$sql = "INSERT INTO sample (email, password, created)
		 VALUES (:email, :password, now())";
 
// 挿入する値は空のまま、SQL実行の準備をする
$stmt = $dbh->prepare($sql);
 
// 挿入する値を配列に格納する
$params = array(':email' => 'eee@eee', ':password' => 'eeee');
 
// 挿入する値が入った変数をexecuteにセットしてSQLを実行
$stmt->execute($params);