この記事では、主に PHP での PDO トランザクション処理操作を紹介し、PDO を使用した MySQL トランザクション処理操作手順、実装テクニック、および関連する注意事項をサンプルの形式で分析します。この記事では、PHP PDO トランザクション処理操作について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
概要: 複数の SQL 操作 (追加、削除、変更) を 1 つの操作単位として扱い、すべて成功するかすべて失敗します。
単一のデータにはトランザクション処理は必要ありません
操作されるテーブルは innoDB タイプのテーブル (トランザクションをサポート) である必要があります
MySQL でよく使用されるテーブル タイプ: MyISAM (非トランザクション) は追加、削除、変更が高速です, InnodB (トランザクション) はセキュリティが高いです
テーブルの型を innoDB 型に変更します
mysql> alter table stu engine=innodb;
使用: PDO 前処理に基づいて次の形式で追加します:
try{ $m->beginTransaction();//开启事务处理 //PDO预处理以及执行语句... $m->commit();//提交事务 }catch(PDOException $e){ $m->rollBack();//事务回滚 //相关错误处理 }
例: 補足: PDOを使用したmysqlトランザクション処理とロールバック操作の別のphpサンプル分析 トランザクションは、一連のクエリおよび/または更新ステートメントで構成されます。 トランザクションを開始するには begin、starttransaction トランザクションがロールバックされると、データベースはトランザクションが開始される前の状態のままになります。編集したファイルを保存せずに終了した場合と同様に、ファイルの元の外観は自然に保持されます。 ①。自動送信をオフにします 注: mysql この InnoDB ドライバーのみがトランザクション処理をサポートしており、デフォルトの MyIsAM ドライバーはサポートしていません 関連する推奨事項: 以上がPHPでのPDOトランザクション処理動作例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。$m = new PDO($dsn,$user,$pwd);
$m->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
try{
$m->beginTransaction();//开启事务处理
$stmt=$m->prepare("insert into stu(name,sex,age,classid)values(?,?,?,?)");
$data=array(
array("user1",1,22,"lamp76"),
array("user2",1,20,"lamp76"),
array("user3",0,22,"lamp76")
);
foreach($data as $v){
$stmt->execute($v);
echo $m->lastInsertId();
}
$m->commit();
echo "提交成功!";
}catch(PDOException $e){
$m->rollBack();//回滚
die("提交失败!");
}
したがって、トランザクションはアトミックな操作とみなすことができ、トランザクション内の SQL は完全に実行されるか、まったく実行されないかのどちらかになります。 PHP での PDO の
MYSQL トランザクション処理手順: