Home  >  Article  >  Backend Development  >  pdo transaction

pdo transaction

WBOY
WBOYOriginal
2016-07-25 09:05:541058browse
pdo transaction
  1. //pdo implements a simple example of mysql transaction processing
  2. /*
  3. implements a transaction that writes multiple pieces of data to the database
  4. insert into test values ​​('test123', 'test123')
  5. * /
  6. $type = 'mysql'; //The type of database to be connected
  7. $host = 'localhost'; //Database host
  8. $dbname = 'test'; //The name of the database to be selected
  9. $password = '' ;
  10. $username = 'root';
  11. $dsn = "{$type}:dbname={$dbname};host={$host}";
  12. try{
  13. //Connect to the database
  14. $pdo = new PDO($dsn, $username, $password);
  15. //Encoding
  16. $pdo->exec("set names utf8");
  17. //Set error prompt method
  18. $pdo->setAttribute(PDO: :ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
  19. //Open standard transaction
  20. $pdo->beginTransaction();
  21. //Construct sql statement
  22. //$sql = "insert into test values ​​(?,?)" ;
  23. $sql = "insert into test values ​​(:user, :password)";
  24. //Or use this sql statement: user :password is similar to the question mark function to bind parameters
  25. $stmt = $pdo->prepare( $sql);
  26. //Bind variables for variables in sql statements
  27. $stmt->bindParam(':user', $username);
  28. $stmt->bindParam(':password', $password) ;
  29. //Assign values ​​to variables in sql statements
  30. $username = 'test123';
  31. $password = '123456';
  32. $stmt->execute();
  33. $rows = $stmt->rowCount ();
  34. if($rows<1){
  35. //Throw an exception if it fails
  36. throw new PDOexception('The first sql statement failed to execute! ', '01');
  37. }
  38. $username = 'hello123';
  39. $password = '123456';
  40. $stmt->execute();
  41. $rows = $stmt->rowCount ();
  42. if($rows<1){
  43. //Throw an exception if it fails
  44. throw new PDOexception('The execution of the second sql statement failed!', '02');
  45. }
  46. $ username = 'world123';
  47. $password = '123456';
  48. $stmt->execute();
  49. $rows = $stmt->rowCount();
  50. if($rows<1){
  51. //If it fails, throw an exception
  52. throw new PDOexception('The execution of the third sql statement failed!', '02');
  53. }
  54. //If no exception is thrown, all sql statements are successfully executed and the transaction is submitted.
  55. $pdo->commit();
  56. }catch(PDOexception $e){
  57. //If an exception is thrown, the transaction fails and the transaction is rolled back
  58. $pdo->rollback();
  59. //Output exception information
  60. echo $e->getCode().'-----'.$e->getMessage();
  61. $pdo = null;
  62. }
  63. ?>
Copy code


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn