1--TEST-- 2mysqli_autocommit() 3--SKIPIF-- 4<?php 5 require_once('skipif.inc'); 6 require_once('skipifemb.inc'); 7 require_once('connect.inc'); 8 require_once('skipifconnectfailure.inc'); 9 10 if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) { 11 die(sprintf("skip Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", 12 $host, $user, $db, $port, $socket)); 13 } 14 15 if (!have_innodb($link)) 16 die(sprintf("skip Needs InnoDB support, [%d] %s", $link->errno, $link->error)); 17?> 18--FILE-- 19<?php 20 require_once("connect.inc"); 21 22 $tmp = NULL; 23 $link = NULL; 24 25 if (!is_null($tmp = @mysqli_autocommit())) 26 printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); 27 28 if (!is_null($tmp = @mysqli_autocommit($link))) 29 printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); 30 31 if (!is_null($tmp = @mysqli_autocommit($link, $link, $link))) 32 printf("[003] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp); 33 34 if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) { 35 printf("[004] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n", 36 $host, $user, $db, $port, $socket); 37 } 38 39 if (!is_bool($tmp = mysqli_autocommit($link, true))) 40 printf("[005] Expecting boolean/any, got %s/%s\n", gettype($tmp), $tmp); 41 42 if (!mysqli_query($link, 'SET AUTOCOMMIT = 0')) 43 printf("[006] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 44 45 if (!$res = mysqli_query($link, 'SELECT @@autocommit as auto_commit')) 46 printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 47 48 $tmp = mysqli_fetch_assoc($res); 49 mysqli_free_result($res); 50 if ($tmp['auto_commit']) 51 printf("[008] Cannot turn off autocommit\n"); 52 53 if (true !== ($tmp = mysqli_autocommit($link, true))) 54 printf("[009] Expecting true, got %s/%s\n", gettype($tmp), $tmp); 55 56 if (!$res = mysqli_query($link, 'SELECT @@autocommit as auto_commit')) 57 printf("[010] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 58 $tmp = mysqli_fetch_assoc($res); 59 mysqli_free_result($res); 60 if (!$tmp['auto_commit']) 61 printf("[011] Cannot turn on autocommit\n"); 62 63 if (!mysqli_query($link, 'DROP TABLE IF EXISTS test')) 64 printf("[012] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 65 66 if (!mysqli_query($link, 'CREATE TABLE test(id INT) ENGINE = InnoDB')) { 67 printf("[013] Cannot create test table, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 68 } 69 70 if (!mysqli_query($link, 'INSERT INTO test(id) VALUES (1)')) 71 printf("[014] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 72 73 if (!mysqli_query($link, 'ROLLBACK')) 74 printf("[015] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 75 76 if (!$res = mysqli_query($link, 'SELECT COUNT(*) AS num FROM test')) 77 printf("[016] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 78 79 if ((!$tmp = mysqli_fetch_assoc($res)) || (1 != $tmp['num'])) 80 printf("[17] Expecting 1 row in table test, found %d rows. [%d] %s\n", 81 $tmp['num'], mysqli_errno($link), mysqli_error($link)); 82 83 mysqli_free_result($res); 84 85 if (!mysqli_query($link, 'DROP TABLE IF EXISTS test')) 86 printf("[018] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 87 88 if (!mysqli_query($link, 'SET AUTOCOMMIT = 1')) 89 printf("[019] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 90 91 if (!$res = mysqli_query($link, 'SELECT @@autocommit as auto_commit')) 92 printf("[020] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 93 $tmp = mysqli_fetch_assoc($res); 94 mysqli_free_result($res); 95 if (!$tmp['auto_commit']) 96 printf("[021] Cannot turn on autocommit\n"); 97 98 if (true !== ($tmp = mysqli_autocommit($link, false))) 99 printf("[022] Expecting true, got %s/%s\n", gettype($tmp), $tmp); 100 101 if (!mysqli_query($link, 'CREATE TABLE test(id INT) ENGINE = InnoDB')) { 102 printf("[023] Cannot create test table, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 103 } 104 105 if (!mysqli_query($link, 'INSERT INTO test(id) VALUES (1)')) 106 printf("[024] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 107 108 if (!mysqli_query($link, 'ROLLBACK')) 109 printf("[025] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 110 111 if (!$res = mysqli_query($link, 'SELECT COUNT(*) AS num FROM test')) 112 printf("[026] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 113 $tmp = mysqli_fetch_assoc($res); 114 if (0 != $tmp['num']) 115 printf("[27] Expecting 0 rows in table test, found %d rows\n", $tmp['num']); 116 mysqli_free_result($res); 117 118 if (!mysqli_query($link, 'INSERT INTO test(id) VALUES (1)')) 119 printf("[028] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 120 121 if (!mysqli_query($link, 'COMMIT')) 122 printf("[029] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 123 124 if (!$res = mysqli_query($link, 'SELECT COUNT(*) AS num FROM test')) 125 printf("[030] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 126 127 if ((!$tmp = mysqli_fetch_assoc($res)) || (1 != $tmp['num'])) 128 printf("[31] Expecting 1 row in table test, found %d rows. [%d] %s\n", 129 $tmp['num'], mysqli_errno($link), mysqli_error($link)); 130 mysqli_free_result($res); 131 132 if (!mysqli_query($link, 'DROP TABLE IF EXISTS test')) 133 printf("[032] [%d] %s\n", mysqli_errno($link), mysqli_error($link)); 134 135 mysqli_close($link); 136 137 if (false !== ($tmp = @mysqli_autocommit($link, false))) 138 printf("[033] Expecting false, got %s/%s\n", gettype($tmp), $tmp); 139 140 print "done!"; 141?> 142--CLEAN-- 143<?php 144 require_once("clean_table.inc"); 145?> 146--EXPECT-- 147done! 148