■なぜシングルトン?
class TransactionManager
{

private static $_TransactionManager;
private $_db;

private function __construct()
{
try {
$this->_db = new PDO(self::$dsn, self::$user, self::$pass);
} catch (PDOException $e) {
print 'connection error!: ' . $e->getMessage() . '<br />';
}
}
public function getConnection()
{
return $this->_db;
}

public static function getInstance()
{
if ($_TransactionManager == null) {
$_TransactionManager = new TransactionManager();
}
return $_TransactionManager;
}
}

■使う側

$sql = "SELECT * FROM TABLE WHERE account = :account";
$stmt = $cnn->prepare($sql);
$acount = 'account_A';
$stmt->bindParam(':account', $acount);
if ($stmt->execute()) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
print_r($row);
}
} else {
print_r($stmt);
}


とか

DB設計時の話です。

テーブルの主キーをサロゲートキーにするか、ナチュラルキーにするかなんて話があるようです。

サロゲートなんて言葉らなかったよ。


サロゲートっていうのは、機械的に振り出すIDのことで、

IDを振り出すから、もちろん複合キーとかありえないらしいです。


自分の担当するシステムで複合キーをつかったDB構成のものもあります。

既存のものはどうしようもないよね。


複合キーよりもサロゲートキーのほうが、将来の変更につよいし、

プログラム的にもO/Rマッパ等との愛称が良いです。


次回設計するときはサロゲートで!


あれ、でもナチュラルに考えると複合キーになるテーブルに、

機械的なIDを振ってしまうと、その複合キーしたかったフィールド達に

重複するデータが入ることを許可してることにならないかい??


んー、もちょっと調べよう。




WindowsでIISの環境だと、IUSR_コンピュータ名 というユーザがファイルにアクセスする。

一時的にログやキャッシュを書き込むディレクトリに対してこのIUSRが書き込み権限を持っていないと

書き込めない。



Windows Server なら、 ディレクトリ(フォルダ)を右クリックで、ユーザの追加からIUSRを追加して、

そのIUSRに対して書き込みの権限を付与すればよい。


Linuxならもっとかんたんchmodすればよい。


で、自分のPC(WindowsXP)では、フォルダ右クリックでも権限付与ウィンドウがでなくて、

設定方法がわからなかった。

けど、いまわかった。


IISマネージャ(コンパね⇒インターネットインフォメーションサービス)を開き、

規定のWebサイト内の、権限を付与したいフォルダをクリック、すべてのタスクから

アクセス許可ウィザードを選択。


これでOK