gtag

2010年11月11日 星期四

在PHP中使用PDO來做SQL資料處理指令

以一般的的SQL處理指令(如:mysql_query($sql)...),只適合單一表格的處理,若同時需要有二個以上的表格或二個處理指令以上,一般的處理指令雖然也可以處理,不過在處理過程中出現斷線或是使用者中斷的話,可能會造成資料庫表格資料不一致,或是一個SQL處理了,其他未處理,這時就必須使用PDO來處理,遇到上述情形,可在例外處理時,加入ROLLBACK 的動作就好了。

以下提供一些範例:

1.連接資料庫

$db = new PDO(
"mysql:dbname=".DB_DATABASE.";host=".DB_HOST.";",
DB_USER,
DB_PASSWORD, array( PDO::ATTR_PERSISTENT => false)
);

2.如果使用BIG5

$db->query("SET NAMES 'big5'");

3.交易處理程式

$db->beginTransaction();
try {
$sql = "insert into table1 ('123','ABC')";
$stmt1=$db->exec($sql);
$sql = "update table1 set field1='456'";
$stmt2=$db->exec($sql);
$db->commit();
echo "
成功!
";
} catch (Exception $e) {
$db->rollBack();
echo "
失敗!
";
}

下次再寫些更進階的寫法~

沒有留言:

張貼留言