015.phpt 2.9 KB

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