I this tutorial PDO'yu ve işlemler hakkında noktasına gelmiş üzerinden gidiyorum. Bağlantı parçaları atlanıyor, ben bu php kodu var:
try
{
$db->beginTransaction();
$db->exec('DROP TABLE IF EXISTS animals');
$db->exec('CREATE TABLE animals ('
.'animal_id MEDIUMINT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,'
.'animal_type VARCHAR(25) NOT NULL,'
.'animal_name VARCHAR(25) NOT NULL)'
.'ENGINE=INNODB');
$db->exec('INSERT INTO animals (animal_type, animal_name) VALUES ("emu", "bruce")');
$db->exec('INSERT INTO animals (animal_type, animal_name) VALUES ("funnel web", "bruce")');
$db->exec('INSERT INTO animals (animal_type, animal_name) VALUES ("lizard", "bruce")');
$db->exec('INSERT INTO animals (animal_type, animal_name) VALUES ("dingo", "bruce")');
$db->exec('INSERT INTO animals (animal_type, animal_name) VALUES ("kangaroo", "bruce")');
$db->exec('INSERT INTO animals (animal_type, animal_name) VALUES ("wallaby", "bruce")');
$db->exec('INSERT INTO animals (animal_type, animal_name) VALUES ("wombat", "bruce")');
$db->exec('INSERT INTO animals (animal_type, animal_name) VALUES ("koala", "bruce")');
$db->exec('INSERT INTO animals (animal_type, animal_name) VALUES ("kiwi", "bruce")');
$db->commit();
echo 'Table re-created and data entered successfully.';
}
catch(PDOException $e)
{
$db->rollback();
echo $e->getMessage();
}
, Bu büyük çalışır ve gibi ben bunu düşündüm ben bir yerde bir hata koyarsanız hariç. Ben dördüncü insert deyiminde bir hata oluşturulan eğer gibi, benim veritabanında üç hayvanları bulmak istiyorum. Ama işler bu senaryoyu koştu önce olduğu gibi veritabanı bulur, yani geri alınması sanıyordum.
Bir şey yanlış mı? Ne eksik? Işlem ve geri alma fonksiyonları onlar yapıyor olması gerektiğini düşünüyorum olandan başka bir şey yapıyor mu? Şekilde işlem "kırma" açılan ve tablolar oluşturmak mı? Burada neler oluyor?
Işlem tablo oluşturulduktan sonra başlayacak yüzden $db->beginTransaction();
çizgisini taşırsanız Update:, ben bekliyordum davranış olsun. Üçüncü insert deyimi sonra başarısız olursa işlem geri alındı sonra Yani, (sadece yeniden beri) boş bir tablo olurdu. Açılan ve ifadeleri oluşturmak rağmen işlem olduğunda işe yaramıyor neden hala merak ... em>