mysqliからPDOに記述を変えよう!接続・取得・追加・更新・削除の基本コード

2018-10-05    770   2009

データベース周りは未だに「mysqli派」ですが、ようやくPDOを使ってみようと決断。

PHP5.1以降に標準で利用できるようになったようで、ライブラリの読み込みは必要がない。
基本となる、接続・取得・追加・更新・削除の一連を動作確認しました。
使い勝手は良さそうで、PEAR::DBはもう完全にオワコンであることがはっきりしました。

※xamppでは下記コードでちゃんと動作しました。

<?php
//mysqlアカウント
$DB['host'] = 'localhost';
$DB['user'] = 'user';
$DB['pass'] = 'pass';
$DB['name'] = 'db_name';

//接続
$dsn = "mysql:dbname={$DB['name']};host={$DB['host']}";
$pdo = new PDO($dsn,$DB['user'],$DB['pass']);
$pdo->query('SET NAMES utf8');


//取得(foreach文)
$sql = 'SELECT * FROM `config`';
foreach ($pdo->query($sql) as $row) {
print($row['id'].'<br>');
}

//取得(while文)
$sql = 'SELECT * FROM `config`';
$rst = $pdo->query($sql);
$total = $rst->rowCount(); //レコード件数取得
while($row = $rst->fetch(PDO::FETCH_ASSOC)){
print($row['id'].'<br>');
}

//追加
$sql = "INSERT INTO `config` (`id`,`user`,`pass`) VALUES (null,'test','test')";
$rst = $pdo->query($sql);
echo $pdo->lastInsertId(); //INSERT直後のautoincrementのIDを取得

//更新
$sql = "UPDATE `config` SET `pass` = 'passchange' WHERE `id` = 11";
$rst = $pdo->query($sql);

//削除
$sql = "DELETE FROM `config` WHERE `id` = 11";
$rst = $pdo->query($sql);

//DB切断
$pdo = null;
?>

MySQLしか使わないのですが、データベースの種類の違いを吸収できる点が唯一のメリットですかね。
あと情報によるとPDOは、データベースの機能をフルに扱うことができなくて、細かいSQL文は非対応のものもあるとか…。
でも、データベース操作はいつも基本的なことで完結しているので大丈夫かな。

PDOはいい感じでした。

カテゴリ: PHP

comment 登録なしでご自由にご入力いただけます(^^)ぜひぜひ記事のご感想をお聞かせ下さい。

お名前とコメントは入力必須です。

コメントの文字数が短すぎます。

この内容でコメントを送る
コメントをする

目が疲れている方向けにラジオ系Youtubeを始めました

オススメのPHPに関する記事

この記事がお役に立てましたら是非シェアのご協力お願いします。