How to use PHP & MySQL and Transaction (Begin,Commit,RollBack) Learn PHP how to using PHP and MySQL on Transaction mode (Begin,Commit,RollBack)
ShotDev Focus:
- PHP & MySQL Transaction mode (Begin,Commit,RollBack)
Table Type : InnoDB
InnoDB Syntax :
CREATE TABLE `customer` ( . . . . ) ENGINE=InnoDB;
#1289 - The ‘InnoDB’ feature is disabled; you need MySQL built with ‘InnoDB’ to have it working
Solution
my.ini (C:\AppServ\MySQL\my.ini)
skip-innodb
Change To
#skip-innodb
### Restart MySQL Service ###
.
.
Example
php_mysql_transaction1.php
<html> <head> <title>ShotDev.Com Tutorial</title> </head> <body> <form action="php_mysql_transaction2.php" name="frmAdd" method="post"> <table width="600" border="1"> <tr> <th width="91"> <div align="center">CustomerID </div></th> <th width="160"> <div align="center">Name </div></th> <th width="198"> <div align="center">Email </div></th> <th width="97"> <div align="center">CountryCode </div></th> <th width="70"> <div align="center">Budget </div></th> <th width="70"> <div align="center">Used </div></th> </tr> <tr> <td><div align="center"><input type="text" name="txtCustomerID" size="5"></div></td> <td><input type="text" name="txtName" size="20"></td> <td><input type="text" name="txtEmail" size="20"></td> <td><div align="center"><input type="text" name="txtCountryCode" size="2"></div></td> <td align="right"><input type="text" name="txtBudget" size="5"></td> <td align="right"><input type="text" name="txtUsed" size="5"></td> </tr> </table> <input type="submit" name="submit" value="submit"> </form> </body> </html>
php_mysql_transaction2.php
<html> <head> <title>ShotDev.Com Tutorial</title> </head> <body> <? $objConnect = mysql_connect("localhost","root","root") or die(mysql_error()); $objDB = mysql_select_db("mydatabase"); //*** Start Transaction ***// mysql_query("BEGIN"); //*** Query 1 ***// $strSQL = "INSERT INTO customer "; $strSQL .="(CustomerID,Name,Email,CountryCode,Budget,Used) "; $strSQL .="VALUES "; $strSQL .="('".$_POST["txtCustomerID"]."','".$_POST["txtName"]."','".$_POST["txtEmail"]."' "; $strSQL .=",'".$_POST["txtCountryCode"]."','".$_POST["txtBudget"]."','".$_POST["txtUsed"]."') "; $objQuery1 = mysql_query($strSQL); $strSQL = "INSERT INTO customer "; $strSQL .="(CustomerID,Name,Email,CountryCode,Budget,Used) "; $strSQL .="VALUES "; $strSQL .="('".$_POST["txtCustomerID"]."','".$_POST["txtName"]."','".$_POST["txtEmail"]."' "; $strSQL .=",'".$_POST["txtCountryCode"]."','".$_POST["txtBudget"]."','".$_POST["txtUsed"]."') "; $objQuery2 = mysql_query($strSQL); if(($objQuery1) and ($objQuery2)) { //*** Commit Transaction ***// mysql_query("COMMIT"); echo "Save Done."; } else { //*** RollBack Transaction ***// mysql_query("ROLLBACK"); echo "Error Save [".$strSQL."]"; } mysql_close($objConnect); ?> </body> </html>
Create a php file and save to path root-path/myphp/
Run
http://localhost/myphp/php_mysql_transaction1.php
Screenshot
1suffered…
…