Annotation of embedaddon/php/ext/mysqli/tests/mysqli_query_local_infile_large.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: mysql_query(LOAD DATA LOCAL INFILE) with large data set (10MB)
! 3: --SKIPIF--
! 4: <?php
! 5: require_once('skipif.inc');
! 6: require_once('skipifconnectfailure.inc');
! 7:
! 8: $link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket);
! 9: if (!$link)
! 10: die(sprintf("skip Can't connect [%d] %s", mysqli_connect_errno(), mysqli_connect_error()));
! 11:
! 12: include_once("local_infile_tools.inc");
! 13: if ($msg = check_local_infile_support($link, $engine))
! 14: die(sprintf("skip %s, [%d] %s", $msg, $link->errno, $link->error));
! 15:
! 16: mysqli_close($link);
! 17: ?>
! 18: --INI--
! 19: mysqli.allow_local_infile=1
! 20: --FILE--
! 21: <?php
! 22: // Create a large CVS file
! 23: $file = tempnam(sys_get_temp_dir(), 'mysqli_test.cvs');
! 24: if (!$fp = fopen($file, 'w'))
! 25: printf("[001] Cannot create CVS file '%s'\n", $file);
! 26:
! 27: $data = str_repeat("a", 127) . ";" . str_repeat("b", 127) . "\n";
! 28:
! 29: $runtime = 5;
! 30: $max_bytes = 1024 * 1024 * 10;
! 31:
! 32: $start = microtime(true);
! 33: $bytes = 0;
! 34: $rowno = 0;
! 35: while (($bytes < $max_bytes) && ((microtime(true) - $start) < $runtime)) {
! 36: if ((version_compare(PHP_VERSION, '5.9.9', '>') == 1))
! 37: $bytes += fwrite($fp, (binary)(++$rowno . ";" . $data));
! 38: else
! 39: $bytes += fwrite($fp, ++$rowno . ";" . $data);
! 40: }
! 41: fclose($fp);
! 42: printf("Filesize in bytes: %d\nRows: %d\n", $bytes, $rowno);
! 43:
! 44: require_once("connect.inc");
! 45: if (!($link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)))
! 46: printf("[002] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
! 47:
! 48: if (!mysqli_query($link, "DROP TABLE IF EXISTS test") ||
! 49: !mysqli_query($link, "CREATE TABLE test(id INT, col1 VARCHAR(255), col2 VARCHAR(255)) ENGINE = " . $engine))
! 50: printf("[003] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 51:
! 52: if (!mysqli_query($link, sprintf("LOAD DATA LOCAL INFILE '%s' INTO TABLE test FIELDS TERMINATED BY ';'", mysqli_real_escape_string($link, $file))))
! 53: printf("[004] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 54:
! 55: if ((!is_string(mysqli_info($link))) || ('' == mysqli_info($link))) {
! 56: printf("[005] [%d] %s, mysqli_info not set \n", mysqli_errno($link), mysqli_error($link));
! 57: }
! 58:
! 59: if (!($res = mysqli_query($link, "SELECT COUNT(*) AS _num FROM test")))
! 60: printf("[006] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 61:
! 62: $row = mysqli_fetch_assoc($res);
! 63: if (($row["_num"] != $rowno))
! 64: printf("[007] Expecting %d rows, found %d\n", $rowno, $row["_num"]);
! 65:
! 66: mysqli_free_result($res);
! 67:
! 68: $random = mt_rand(1, $rowno);
! 69: if (!$res = mysqli_query($link, "SELECT id, col1, col2 FROM test WHERE id = " . $random))
! 70: printf("[008] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 71:
! 72: $row = mysqli_fetch_assoc($res);
! 73: var_dump($row);
! 74: mysqli_free_result($res);
! 75:
! 76: mysqli_close($link);
! 77: print "done!";
! 78: ?>
! 79: --CLEAN--
! 80: <?php
! 81: $file = tempnam(sys_get_temp_dir(), 'mysqli_test.cvs');
! 82: if (file_exists($file))
! 83: unlink($file);
! 84:
! 85: require_once("connect.inc");
! 86: if (!($link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)))
! 87: printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
! 88:
! 89: if (!mysqli_query($link, "DROP TABLE IF EXISTS test"))
! 90: printf("[c002] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 91: ?>
! 92: --EXPECTF--
! 93: Filesize in bytes: %d
! 94: Rows: %d
! 95: array(3) {
! 96: [%u|b%"id"]=>
! 97: %unicode|string%(%d) "%d"
! 98: [%u|b%"col1"]=>
! 99: %unicode|string%(127) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
! 100: [%u|b%"col2"]=>
! 101: %unicode|string%(127) "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
! 102: }
! 103: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>