PHPにPDOというデータベース操作に役立つクラスがある

(データベースアクセスの処理を省略)
$sql = 'INSERT INTO `shop_info` (shop_name,shop_address,shop_telephone,create_date,update_date) value (:name,:address,:telephone,:create_date,:update_date)';
$stmt = $dbh->prepare($sql);

//置換
$stmt->bindParam(':name',$this->shopName);
$stmt->bindParam(':address',$this->shopAddress);
$stmt->bindParam(':telephone',$this->shopTelephone);
$stmt->bindParam(':create_date',date('Y-m-d H:i:s'));//日時は空で登録はできない。
$stmt->bindParam(':update_date',date('Y-m-d H:i:s'));//日時は空で登録はできない。

//SQL実行
$stmt->execute();

PDOの残念なところは、実行するときの最終的なSQLがどうなっているのかわからないところ。
insertやselectなどが失敗したときに、SQL文のどこがいけなかったの調べることができない。

置換などが行われたあとのSQL文を想像して、そのSQLphpMyAdminで試してみるしかないのかな…

PDOについて
http://php.net/manual/ja/class.pdo.php
http://www.phpbook.jp/tutorial/pdo/