File tree Expand file tree Collapse file tree 6 files changed +129
-0
lines changed
Expand file tree Collapse file tree 6 files changed +129
-0
lines changed Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ class ez_mysqli extends ezsqlModel implements DatabaseInterface
1313 private $ return_val = 0 ;
1414 private $ is_insert = false ;
1515 private $ shortcutUsed = false ;
16+ private $ isTransactional = false ;
1617
1718 /**
1819 * Database connection handle
@@ -501,4 +502,29 @@ public function getInsertId()
501502 {
502503 return \mysqli_insert_id ($ this ->dbh );
503504 } // getInsertId
505+
506+ /**
507+ * Begin Mysql Transaction
508+ */
509+ public function beginTransaction ()
510+ {
511+ /* turn autocommit off */
512+ $ this ->dbh ->autocommit (false );
513+ $ this ->dbh ->begin_transaction (MYSQLI_TRANS_START_READ_WRITE );
514+ $ this ->isTransactional = true ;
515+ }
516+
517+ public function commit ()
518+ {
519+ $ this ->dbh ->commit ();
520+ $ this ->dbh ->autocommit (true );
521+ $ this ->isTransactional = false ;
522+ }
523+
524+ public function rollback ()
525+ {
526+ $ this ->dbh ->rollBack ();
527+ $ this ->dbh ->autocommit (true );
528+ $ this ->isTransactional = false ;
529+ }
504530} // ez_mysqli
Original file line number Diff line number Diff line change @@ -14,6 +14,7 @@ class ez_pdo extends ezsqlModel implements DatabaseInterface
1414 private $ return_val = 0 ;
1515 private $ is_insert = false ;
1616 private $ shortcutUsed = false ;
17+ private $ isTransactional = false ;
1718
1819 /**
1920 * Database connection handle
@@ -469,4 +470,25 @@ public function handle()
469470 {
470471 return $ this ->dbh ;
471472 }
473+
474+ /**
475+ * Begin PDO Transaction
476+ */
477+ public function beginTransaction ()
478+ {
479+ $ this ->dbh ->beginTransaction ();
480+ $ this ->isTransactional = true ;
481+ }
482+
483+ public function commit ()
484+ {
485+ $ this ->dbh ->commit ();
486+ $ this ->isTransactional = false ;
487+ }
488+
489+ public function rollback ()
490+ {
491+ $ this ->dbh ->rollback ();
492+ $ this ->isTransactional = false ;
493+ }
472494} // ez_pdo
Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ class ez_pgsql extends ezsqlModel implements DatabaseInterface
1313 private $ return_val = 0 ;
1414 private $ is_insert = false ;
1515 private $ shortcutUsed = false ;
16+ private $ isTransactional = false ;
1617
1718 /**
1819 * Database connection handle
@@ -354,4 +355,25 @@ public function getPort()
354355 {
355356 return $ this ->database ->getPort ();
356357 } // getPort
358+
359+ /**
360+ * Begin Postgresql Transaction
361+ */
362+ public function beginTransaction ()
363+ {
364+ @\pg_query ($ this ->dbh , "BEGIN " );
365+ $ this ->isTransactional = true ;
366+ }
367+
368+ public function commit ()
369+ {
370+ @\pg_query ($ this ->dbh , "COMMIT " );
371+ $ this ->isTransactional = false ;
372+ }
373+
374+ public function rollback ()
375+ {
376+ @\pg_query ($ this ->dbh , "ROLLBACK " );
377+ $ this ->isTransactional = false ;
378+ }
357379} // ez_pgsql
Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ class ez_sqlite3 extends ezsqlModel implements DatabaseInterface
1313 private $ return_val = 0 ;
1414 private $ is_insert = false ;
1515 private $ shortcutUsed = false ;
16+ private $ isTransactional = false ;
1617
1718 /**
1819 * Database connection handle
@@ -309,4 +310,25 @@ public function handle()
309310 {
310311 return $ this ->dbh ;
311312 }
313+
314+ /**
315+ * Begin sqlite3 Transaction
316+ */
317+ public function beginTransaction ()
318+ {
319+ $ this ->dbh ->exec ('BEGIN ' );
320+ $ this ->isTransactional = true ;
321+ }
322+
323+ public function commit ()
324+ {
325+ $ this ->dbh ->exec ('COMMIT ' );
326+ $ this ->isTransactional = false ;
327+ }
328+
329+ public function rollback ()
330+ {
331+ $ this ->dbh ->exec ('ROLLBACK ' );
332+ $ this ->isTransactional = false ;
333+ }
312334}
Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ class ez_sqlsrv extends ezsqlModel implements DatabaseInterface
1313 private $ return_val = 0 ;
1414 private $ is_insert = false ;
1515 private $ shortcutUsed = false ;
16+ private $ isTransactional = false ;
1617
1718 /**
1819 * ezSQL non duplicating data type id's; converting type ids to str
@@ -428,4 +429,25 @@ public function handle()
428429 {
429430 return $ this ->dbh ;
430431 }
432+
433+ /**
434+ * Begin sqlsrv Transaction
435+ */
436+ public function beginTransaction ()
437+ {
438+ @\sqlsrv_begin_transaction ($ this ->dbh );
439+ $ this ->isTransactional = true ;
440+ }
441+
442+ public function commit ()
443+ {
444+ @\sqlsrv_commit ($ this ->dbh );
445+ $ this ->isTransactional = false ;
446+ }
447+
448+ public function rollback ()
449+ {
450+ @\sqlsrv_rollback ($ this ->dbh );
451+ $ this ->isTransactional = false ;
452+ }
431453} // end class
Original file line number Diff line number Diff line change @@ -102,4 +102,19 @@ public function handle();
102102 * Reset connection handle
103103 */
104104 public function reset ();
105+
106+ /**
107+ * Begin Transaction
108+ */
109+ public function beginTransaction ();
110+
111+ /**
112+ * Commit Transaction
113+ */
114+ public function commit ();
115+
116+ /**
117+ * Rollback Transaction
118+ */
119+ public function rollback ();
105120}
You can’t perform that action at this time.
0 commit comments