WEB系技術電脳日記 -212ページ目

感動の計算(´・ω・)ス




何となく感動した(´・ω・)ス

帰宅(´・ω・)ス

今日は午後から埼玉県岩槻へ
現地を10時近くに終わり、まったり帰宅し、
先程帰宅(´・ω・)ス

さて・・一杯飲むか。
いや、作業・・・、
いやいや・・まずはゲームだw

php pdoを汎用化して使いやすくする(´・ω・)ス その2 コンフィグ用意

昔のファイルを見直してPDO汎用で使い勝手を良くしてるが、
接続周りはおkなので、 外部ファイルのまとめて・・・となると、
当然コンフィグにまとめておきたい(´・ω・)ス
だが、defineでそれぞれ入れ込みたいが、
そのままだとファイルの先頭にincludeやらrequire満載になるので、
include("./include/config.php");当りを用意して、
ちとCMS風にしておく。
そうなると当然WordPressを確認。

WordPressだと、
wp-config.php で設定を記述
index.php内でrequire('./wp-blog-header.php');読み込みし、
さらに、
if ( !isset($wp_did_header) ) {
$wp_did_header = true;
require_once( dirname(__FILE__) . '/wp-load.php' );
wp();
require_once( ABSPATH . WPINC . '/template-loader.php' );
}
で、$wp_did_headerが無ければ、
wp-load.phpと、template-loader.php
を読み込む

wp-load.php内では、
if ( file_exists( ABSPATH . 'wp-config.php') ) {

/** The config file resides in ABSPATH */
require_once( ABSPATH . 'wp-config.php' );で読み込みと・・・・

やはり読み込み1行でバンバン読むのはデフォらしいので、
こちらもそうしてみるか。
ただ、オレオレ作業が多いので、こうファイルが多いと、
追っていくのが面倒だし、できればクラス化した後も、
1ファイルでほほう・・・と見直しができるほうが嬉しい気がする。

そうなるとinclude("./include/config.php");として、
その中に全て入れ込む事にしてみる。

また、DBの接続やら関数絡みのここに統一させておく。
まぁ・・その方が後で見やすいだろうし。

先程の件で、
//データベース設定
define('DSN', 'mysql:dbname=test; host=localhost');
/** MySQL データベースのユーザー名 */
define('DB_USER', 'アカウント');
/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'パスワード');

//PDOの接続ファイル ////////////////////////////////////
require_once("db.php");
//関数ファイル ////////////////////////////////////
require_once("function.php");

とかここにぶち込んでおく(´・ω・)ス

で、db.phpに、

function getDb() {
try {
$db = new PDO(DSN, DB_USER, DB_PASSWORD,array(PDO::ATTR_PERSISTENT => TRUE ));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//文字化け対策
$db->exec('SET NAMES utf8');
} catch (PDOException $e) {
die("データベース接続エラです。:{$e->getMessage()}");
}
return $db;
}
とかgetDb()関数用意して、使いまわす。
接続切るのは、まぁ・・・クエリ書く場所でいいか。

さて・・・次は、もっと定数と関数を実装させておくか。




朝(´・ω・)ス

昨夜はPHP+MySQL絡みで、
ちとファイルを見直し(´・ω・)ス
本当に汚いコードばっかり書いてんなーと、
自分が恥ずかしい(´・ω・)ス
いずれにしてもここらでしっかり・・。

昨日は午後から出撃で、
本日も午前・午後と出撃予定(´・ω・)ス
今日も良く晴れそう(´・ω・)ス
明日辺りから雨予報が出ているので、
今日はしっかり日光を浴びておく事に。


php pdoを汎用化して使いやすくする(´・ω・)ス その1 接続周り

php+MySQLでの接続は今は避けられないご時世。
そんな中、数年前からpdo接続でゴニョゴニョやってるが、
ここらで、ちゃんと見直して汎用化に乗り出す(´・ω・)ス
流れは、
1.接続スクリプト書いて確認
2.関数化してインクルードで読みだしに。
3.参照をもっと簡素化
4.更新や削除などクエリも関数化とか。
5.クラス化するか検討

さて、開始。

まずは手元のテストサーバー(CentOS6.4)で環境を用意。
仕様は php5.3 MySQL 5.1.67
テスト用のテーブルも用意。
良くあるような人間管理のテーブル
-- テーブルの構造 `member`

CREATE TABLE IF NOT EXISTS `member` (
`id` int(2) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`sex` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;
とかヤッツケ用意。
まずは一般的な接続で記述してみる。

try {
$pdo = new PDO('mysql:dbname=テーブル名;host=ホスト名', 'アカウント', 'パスワード');
} catch (PDOException $e) {
exit('データベースに接続できませんでした。' . $e->getMessage());
}

$pdo->exec('SET NAMES utf8');
$stmt = $pdo->query('SELECT * FROM member');
while ($data = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $data['name'];
echo "<br>";
}
$pdo = null; //接続終了
おk(´・ω・)ス
次にこれを関数化

//PDO接続 //////////////
function getDb() {
$dsn ='mysql:dbname=テーブル名; host=ホスト名';
$usr = 'アカウント';
$passwd = 'パスワード';

try {
$db = new PDO($dsn, $usr, $passwd,array(PDO::ATTR_PERSISTENT => TRUE ));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//文字化け対策
$db->exec('SET NAMES utf8');
} catch (PDOException $e) {
die("データベース接続エラです。:{$e->getMessage()}");
}
return $db;
}
//クラスを利用して接続してみる。
try {
$db = getDb();
$stt = $db->query('SELECT * FROM member');
$stt->execute();
while($row = $stt->fetch(PDO::FETCH_ASSOC)){
echo $row['name'];
echo "<br>";
}
} catch ( PDOException $e) {
die("エラーメッセージ:{$e->getMessage()}");
}
次はこれを簡素化したい所。
なにやら配列に入れなくても、まわせるお!”とググると見つかる。
PDOStatementはforeachで直接回せ
PDOでSQLを実行すると、PDOStatementのインスタンスという形で結果が返ってきます。これをfetchAll(PDO::FETCH_ASSOC)して配列に直してから操作する人がいますが、実はPDOStatementはTraversableなのでそのままforeachで回すことができます。

早速テストしてみる。

foreach ($stt as $row) {
echo $row['name'];
}
お、便利(´・ω・)ス
ついでに、 $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);とか
回す時に値を見やすくしておく

これで、関数部分をインクルードさせておけばおk。
さて、次に更新やら削除も別途思考



朝(´・ω・)ス

始発で帰宅し、今日は2件出撃後、
作業に籠る(´・ω・)ス
今日も地道に頑張る(´・ω・)ス

そんな朝(´・ω・)ス

LARK Zippo貰った(´・ω・)ス

WEB系技術電脳日記-LARK Zippo 増田氏と秋葉原探索中に、
ベルバラでLARKのイベント
先日の千石電商前から、
スケールアップ・・・・
早速突撃すると、
ドリンク配ってたり、
クオカードプレゼントしてたり・・・・と。
私はZippoを貰った(´・ω・)ス

何かとタバコはテレビCM出来なくなったりで、
こういうイベントが本当に多くなった。
私としては嬉しい事だったり。

それにしてもLARKは本当に勢いがあるな・・
あぁ・・・・峰が吸いたいお・・・・
台湾とかいくしかないか・・・

そんな記録(´・ω・)ス

夜が来た(´・ω・)ス

WEB系技術電脳日記 夜が来た(´・ω・)ス

今日は午後は神田でチト呼ばれて作業し、
夕方から秋葉原。
増田氏と打ち合わせし、
千石電商でLEDや半田吸い線、
基盤などを購入。
ドスパラでたかぴー氏のマシン を視姦し、
ジャンクノートやらパーツを見て回る。
その後、エロゲM氏と合流し、
適度に飲む(´・ω・)ス

結局、電車が間に合わず、
ネットカフェでコツコツ作業(´・ω・)ス
そんな夜の記録(´・ω・)ス

朝(´・ω・)ス

朝(´・ω・)ス

今日は朝から散歩。
近所の歩道のつつじもいい感じに咲き始め。
そうだ・・・もう4月半ばだったと実感。

さて、今日も地道に頑張る。
そんな朝のひと時(´・ω・)ス


帰宅(´・ω・)ス

今日の出撃は完了(´・ω・)ス
あとはひたすら作業。

そんな夕方の記録(´・ω・)ス