Have you looked at the manual page for odbc functions? It's right there: odbc_rollback(), along with odbc_commit(). One wrinkle is there is no begin function: odbc is in autocommit mode by default, where each query runs in its own transaction. To be able to issue your own commits and rollbacks, you have to take it out of autocommit mode via odbc_autocommit(). After you do this, the very next query implicitly begins a transaction, but now the transaction stays open until you explicitly end it via odbc_commit() or odbc_rollback().