自作PHP派が既に時代遅れのPEAR::DBを試用で使ってみたので基本コード紹介|接続・取得・追加・更新・削除
2018-10-03 784 1966PHPのキャリアは10年くらいで、フレームワークは一切使用せず、独自PHPで作成をする派です。
誰よりもあらゆるポータルサイトを早く作る自信があり、開発コストもかなり下げられる我が誇りの技術。
かなりの大掛かりで複数人での開発ならフレームワークを覚える必要があるのだろうが、
基本一人で全てこなす案件しかしないので、覚える必要がない。個人的にはスピード第一。
データベース周りは「mysqli派」です。というのも大抵のレンタルサーバーはmysqlだから他のを使う機会がありませんでした。
そんな私が、重い腰をあげてPEARライブラリのPEAR::DBを試してみた。
DBの基本である、接続・取得・追加・更新・削除は以下の通り。無事に動作しました。
読み込みがパスを一切書かず、ファイル名だけで使えるのことにすこし驚きました。
おそらく環境変数というものが通っているからかなと。
※xamppとさくらインターネットでは下記コードでちゃんと動作しました。
<?php
//PEARの読み込み
require_once("DB.php");
//DBアカウント
$dsn = array(
'phptype' => 'mysqli',
'hostspec' => 'localhost',
'username' => 'user',
'password' => 'pass',
'database' => 'db_name'
);
//接続
$db = DB::connect($dsn);
$db->query('SET NAMES utf8');
//取得
$res =& $db->query("SELECT * FROM `table_name`");
while($row =& $res->fetchRow(DB_FETCHMODE_OBJECT)){
echo $row->shop.'<br>';
}
//追加
$sql = "insert into `table_name` (`id`,`user`,`pass`) VALUES (null,'test','test')";
$res =& $db->query($sql);
//更新
$sql = "update `table_name` set `pass` = 'passchange' WHERE id = 1";
$res =& $db->query($sql);
//削除
$sql = "delete from `table_name` where id = 1";
$res =& $db->query($sql);
//DB切断
$db->disconnect();
?>
「insert_id()」の代用がPEARにはないようです。最後に登録したデータのIDを取得する機能。この機能は個人的によく使っていたので残念です。
例えば新規登録の際、画像の登録があった場合にIDをファイル名にしていたからです。
アップした画像を連番にするのはいいことではないので、ハッシュ値にしなさいということですかね。
うん、よし次回から画像ファイル名はmd5でハッシュ値を生成するとしよう。
あと、PEARのことを色々調べて気になったのは、PEAR::DBは人気がありませんね。調べていても「PDO」の方が圧倒的に多く検索にかかります。
PHP5.1以降に標準で利用できるようになったので、PDOのほうが人気があるのは当然ですね。
ということでPEAR::DBは勉強する必要性がないと感じました。