使用するエンジン(InnoDB、BDB)がサポートしている場合は、トランザクションを使用できます。
http://dev.mysql.com/doc/refman/を参照してください5.0 / en / commit.html 例として。
編集: mysqliを使用した簡単な例 :
$connection->autocommit(FALSE); // disable auto-commit and start a new transaction
$result = $connection->query("INSERT INTO `table` VALUES (1,2,3)");
$result &= $connection->query("UPDATE `otherTable` SET `val1`=1 WHERE `id`=$idOfInsert");
if (!$result) {
// One of the queries has failed: cancel the transaction
$connection->rollback();
} else {
// Both queries worked:commit the current transaction
$connection->commit();
}
$connection->autocommit(TRUE); // enable auto-commit
クエリを最適化することをお勧めします(つまり、最初のクエリが失敗した場合は2番目のクエリを実行せず、プリペアドステートメントを使用します...)