PDOでDB接続設定

$handle = new PDO("mysql:host=$server;dbname=$db","$username","$password");
PDO設定の構造
  • mysql
    • host
    • dbname
  • username
  • password

pdophp

Dbの文字セットをUTF-8に設定する

文字セットの設定はoptionに記載する。dsnでhost,dbnameを宣言しておいて、pdoでアクセスする。

<?php
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'username';
$password = 'password';
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
); 

$dbh = new PDO($dsn, $username, $password, $options);
?>

phpの定番TODOリスト

Paiza Cloudでマニュアルに従い、TODOリストを作ることに成功。

dbとの接続については以下の記述。

    $pdo = new PDO("mysql:host=localhost;dbname=mydb;charset=utf8","root","", [PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING]);

    if(isset($_POST['submit']) ){
        $name = $_POST['name'];
        $sth = $pdo->prepare("INSERT INTO todos (name) VALUES (:name)");
        $sth->bindValue(':name', $name, PDO::PARAM_STR);
        $sth->execute();
    } elseif(isset($_POST['delete'])){
        $id = $_POST['id'];
        $sth = $pdo->prepare("delete from todos where id = :id");
        $sth->bindValue(':id', $id, PDO::PARAM_INT);
        $sth->execute();
    }

これをローカルのMAMP上に移植しようとしたところ、dbとtableはコマンドラインで実装が出来ない。pdoで接続するdbをmysql57フォルダで扱えるのかどうか自体が不明。