$handle = new PDO("mysql:host=$server;dbname=$db","$username","$password");
PDO設定の構造
- mysql
- host
- dbname
- username
- password
$handle = new PDO("mysql:host=$server;dbname=$db","$username","$password");
文字セットの設定は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);
?>
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フォルダで扱えるのかどうか自体が不明。