21,886
社区成员
发帖
与我相关
我的任务
分享
try {
$dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO::ATTR_PERSISTENT => true));
echo "Connected\n";
} catch (Exception $e) {
die("Unable to connect: " . $e->getMessage());
}
try {
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->beginTransaction();
$dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
$dbh->exec("insert into salarychange (id, amount, changedate)
values (23, 50000, NOW())");
$dbh->commit();
} catch (Exception $e) {
$dbh->rollBack();
echo "Failed: " . $e->getMessage();
}
来着PHP官方文档 http://php.net/manual/zh/pdo.transactions.phptry {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$dbh->query('SELECT * from FOO123');//一个不存在的表
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
}
print_r($dbh->errorInfo());
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$dbh -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->query('SELECT * from FOO123');
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
}
print_r($dbh->errorInfo());
或try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$dbh->query('SELECT * from FOO123');
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
}
print_r($dbh->errorInfo());
运行后你就会发现:虽然启用了异常处理,传统的错误处理依然时生效的