Bir süre için bu başımı çizilmeye ....
Ben bazı InnoDB tablolar ile FOR UPDATE
kullanmak istediğiniz gibi pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);
ile bir PDO nesnesi var. MySQL belgeleri okuyarak, FOR UPDATE
, yalnızca okuma satırları ise kilidi olacak:
- Eğer bir işlem vardır
- Eğer bir işlem not ve
set autocommit=0
verildikten
Yani, ATTR_AUTOCOMMIT
PDO nesnesi satırları kilitlemek için izin kullanıyorum. Her iki durumda da, bu geçerli değil INSERT ve UPDATE deyimleri neden oluyor. Bu ifadeler FOR UPDATE
Onlar sadece hazırlanmış tablolar ile aynı PDO nesnesi üzerinden çalışan ile ilgisi vardır.
Benim MySQL sorgu günlük gibi görünüyor:
xxx Connect user@host
xxx Query set autocommit=0
xxx Query INSERT INTO foo_tbl (bar, baz) VALUES ('hello','world')
xxx Quit
PHP / PDO şikayetçi, ama tablodan seçerek verileri yazılmış olmadığını gösteriyor değil.
Ben kullanıyorum sorguları önceki zaman binlerce çalıştırmak edilmiştir; sadece ATTR_AUTOCOMMIT
değişiklik yapılmıştır. Bu seçeneği Çıkarma şeyi tekrar çalışır hale getirir. İşlemler çok autocommit=0
seçeneği ile iyi çalışıyor.
PDO nesne üzerinde yapmak gerekir ek çağrılar değişiklikleri yapmak sopa (commit()
, bir işlem olmadığını haklı olarak şikayet) var mı? Temelde, bir düz PDO nesnesi istiyorum ama InnoDB tablolar için işlemlerin dışında (burada çok uzun ve sıkıcı neden arka plan) satırları kilitlemek için seçeneği ile.
Bu aptal şey ben eksik scratches head am eminim