Annotation of embedaddon/php/ext/mysqli/tests/mysqli_query_local_infile_large.phpt, revision 1.1.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>