「php入門」トランザクションを使ってデータベースを操作するサンプルコード

サンプルコード
<?php
$dns = 'mysql:host=localhost;dbname=demodb;charset=utf8′;
$user =’testuser’;
$passwd =’123456′;

$conn = new PDO($dns,$user,$passwd);
$stmt = $conn->prepare('INSERT INTO test_table(cft_id, cft_value) VALUES(?, ?)’);
$flag= true; ]
while($waiting) {
try {
$conn->beginTransaction();
for($i=0; $i < 10; $i++) {
$stmt->bindValue(1, $i, PDO::PARAM_INT);
$stmt->bindValue(2, 'TEST’, PDO::PARAM_STR);
$stmt->execute();
sleep(1);
}
$conn->commit();
$flag= false;
} catch(PDOException $e) {
if(stripos($e->getMessage(), 'DATABASE IS LOCKED’) !== false) {
// オープントランザクションをコミットする
$conn->commit();
usleep(250000);
} else {
$conn->rollBack();
throw $e;
}
}
}

?>

PHP

Posted by arkgame