015.phpt 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. --TEST--
  2. mysqli autocommit/commit/rollback with innodb
  3. --SKIPIF--
  4. <?php
  5. require_once('skipif.inc');
  6. require_once('skipifconnectfailure.inc');
  7. require_once('connect.inc');
  8. if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
  9. die(sprintf("Cannot connect, [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
  10. if (!have_innodb($link))
  11. die(sprintf("Needs InnoDB support, [%d] %s", $link->errno, $link->error));
  12. ?>
  13. --FILE--
  14. <?php
  15. require_once("connect.inc");
  16. $link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket);
  17. if (!$link)
  18. printf("[001] Cannot connect, [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
  19. if (!mysqli_select_db($link, $db))
  20. printf("[002] Cannot select DB '%s', [%d] %s\n", $db,
  21. mysqli_errno($link), mysqli_error($link));
  22. if (!mysqli_autocommit($link, TRUE))
  23. printf("[003] Cannot turn on autocommit mode, [%d] %s\n",
  24. mysqli_errno($link), mysqli_error($link));
  25. if (!mysqli_query($link,"DROP TABLE IF EXISTS test") ||
  26. !mysqli_query($link,"CREATE TABLE test(a int, b varchar(10)) Engine=InnoDB") ||
  27. !mysqli_query($link, "INSERT INTO test VALUES (1, 'foobar')"))
  28. printf("[004] Cannot create test data, [%d] %s\n",
  29. mysqli_errno($link), mysqli_error($link));
  30. if (!mysqli_autocommit($link, FALSE))
  31. printf("[005] Cannot turn off autocommit mode, [%d] %s\n",
  32. mysqli_errno($link), mysqli_error($link));
  33. if (!mysqli_query($link, "DELETE FROM test") ||
  34. !mysqli_query($link, "INSERT INTO test VALUES (2, 'egon')"))
  35. printf("[006] Cannot modify test data, [%d] %s\n",
  36. mysqli_errno($link), mysqli_error($link));
  37. if (!mysqli_rollback($link))
  38. printf("[007] Cannot call rollback, [%d] %s\n",
  39. mysqli_errno($link), mysqli_error($link));
  40. $result = mysqli_query($link, "SELECT SQL_NO_CACHE * FROM test");
  41. if (!$result)
  42. printf("[008] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  43. $row = mysqli_fetch_row($result);
  44. mysqli_free_result($result);
  45. var_dump($row);
  46. if (!mysqli_query($link, "DELETE FROM test") ||
  47. !mysqli_query($link, "INSERT INTO test VALUES (2, 'egon')"))
  48. printf("[009] Cannot modify test data, [%d] %s\n",
  49. mysqli_errno($link), mysqli_error($link));
  50. mysqli_commit($link);
  51. $result = mysqli_query($link, "SELECT * FROM test");
  52. if (!$result)
  53. printf("[010] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  54. $row = mysqli_fetch_row($result);
  55. mysqli_free_result($result);
  56. var_dump($row);
  57. mysqli_query($link, "DROP TABLE IF EXISTS test");
  58. mysqli_close($link);
  59. print "done!";
  60. ?>
  61. --CLEAN--
  62. <?php
  63. require_once("clean_table.inc");
  64. ?>
  65. --EXPECTF--
  66. array(2) {
  67. [0]=>
  68. %unicode|string%(1) "1"
  69. [1]=>
  70. %unicode|string%(6) "foobar"
  71. }
  72. array(2) {
  73. [0]=>
  74. %unicode|string%(1) "2"
  75. [1]=>
  76. %unicode|string%(4) "egon"
  77. }
  78. done!