renathy Posted August 30, 2010 Report Share Posted August 30, 2010 Kaa ieksh PHP riikojas, ja man teiksim ir vairaak INSERTi, pirmais uz tabulu TABULA1 un tad 10 uz TABULA2. Man nepiecieshams - ja neizdodas kaads no INSERTiem, tad atsauc visus paareejos (piemeeram, uz TABULA2 nesanaaca 5-tais INSERTs, tad atsauc visus ieprieksheejos, t.sk., uz tabulu TABULA1). Quote Link to comment Share on other sites More sharing options...
briedis Posted August 30, 2010 Report Share Posted August 30, 2010 (edited) Tās saucas transakcijas. Gūglē: "mysql transactions" Edited August 30, 2010 by briedis Quote Link to comment Share on other sites More sharing options...
renathy Posted August 30, 2010 Author Report Share Posted August 30, 2010 Ok. Es zinu, ka taas ir transakcijas un ka taas ir jaacheko, man tikai nav pieredzes tieshi ar PHP un transakciju apstraadi. Domaaju, ka var uzreiz kaut ko preciizaaku ieteikt, ko paskatiities, bet varbuut tad pietiks ar guugli un PHP+transakcijas mekleeshanu. Quote Link to comment Share on other sites More sharing options...
briedis Posted August 30, 2010 Report Share Posted August 30, 2010 (edited) Transakcijām nav nekāda sakara ar php. Tām ir vistiešākais sakars ar db serveri, konkrēti, mysql. Secība ir tāda: > sākam transakciju > taisam insertus > taisam insertus > kaut kas nofeilo - taisam rollback. > viss kārtībā - taisam commit. Ja būtu apskatījis pāris gūgles rezultātus...... Edited August 30, 2010 by briedis Quote Link to comment Share on other sites More sharing options...
mixis Posted August 31, 2010 Report Share Posted August 31, 2010 Tikai der atcetēties, ka MySQL MyISAM tipa tabulas nesuportē transakcijas Quote Link to comment Share on other sites More sharing options...
Maris-S Posted August 31, 2010 Report Share Posted August 31, 2010 Vēl vari padomāt par tiem 10 insert otrajā tabulā, iespējams tos var apvienot vienā vaicājumā, bet bez tabulu struktūras un konkrēta piemēra nevar neko precīzi pateikt. Jebkurā gadījumā transakcijas būs vajadzīgas, pirmās tabulas insert būs atsevišķi. Quote Link to comment Share on other sites More sharing options...
renathy Posted September 4, 2010 Author Report Share Posted September 4, 2010 Pag, es līdz galam nesapratu... Vai tad PHP nav tā, ka pēc katra insert-a notiek automātiskais commits? Tad jau nevar uztaistīt vairākus insert-us (ar mysql_query) un tad rollbacku, jo viss jau ir no-commitots. Pēc kādiem vārdiem meklēt gūglē? Es ideju visu saprotu, piemēram ar Oracle Pl-SQL varētu tikt galā, jo tur to visu taisīju. R. Quote Link to comment Share on other sites More sharing options...
marrtins Posted September 4, 2010 Report Share Posted September 4, 2010 Defaultā tā notiek. Tāpēc veic attiecīgās izmaiņas MySQL konfigā vai arī PHP pēc konekcijas izveidošanas mysqli_autocommit($conn, false); Quote Link to comment Share on other sites More sharing options...
renathy Posted September 4, 2010 Author Report Share Posted September 4, 2010 Skaidrs. Tad būtu pareizi šādu auto commitu izslēgt pirms multi-insertiem un ieslēgt pēc tam pēc multi-insertiem? Respektīvi, lai visur citur tomēr auto commits notiek, bet, kur nevajaga - nenotiek. Quote Link to comment Share on other sites More sharing options...
marrtins Posted September 4, 2010 Report Share Posted September 4, 2010 Vari vienu konekciju lietot autocommit off un otru ar on. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.