Annotation of embedaddon/php/ext/mysqli/tests/mysqli_stmt_insert_id.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: mysqli_stmt_insert_id()
3: --SKIPIF--
4: <?php
5: require_once('skipif.inc');
6: require_once('skipifemb.inc');
7: require_once('skipifconnectfailure.inc');
8: ?>
9: --FILE--
10: <?php
11: require_once("connect.inc");
12:
13: $tmp = NULL;
14: $link = NULL;
15:
16: if (!is_null($tmp = @mysqli_stmt_insert_id()))
17: printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
18:
19: $stmt = @new mysqli_stmt($link);
20: if (!is_null($tmp = @mysqli_insert_id($link)))
21: printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
22:
23: require('table.inc');
24:
25: $stmt = mysqli_stmt_init($link);
26: if (NULL !== ($tmp = @mysqli_stmt_insert_id($stmt)))
27: printf("[003] Expecting NULL/NULL, got %s/%s\n", gettype($tmp), $tmp);
28:
29: if (!mysqli_stmt_prepare($stmt, "SELECT id, label FROM test ORDER BY id LIMIT 1") ||
30: !mysqli_stmt_execute($stmt)) {
31: printf("[004] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
32: }
33:
34: if (0 !== ($tmp = mysqli_stmt_insert_id($stmt)))
35: printf("[005] Expecting int/0, got %s/%s\n", gettype($tmp), $tmp);
36: mysqli_stmt_close($stmt);
37:
38: // no auto_increment column
39: $stmt = mysqli_stmt_init($link);
40: if (!mysqli_stmt_prepare($stmt, "INSERT INTO test(id, label) VALUES (100, 'a')") ||
41: !mysqli_stmt_execute($stmt)) {
42: printf("[006] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
43: }
44:
45: if (0 !== ($tmp = mysqli_stmt_insert_id($stmt)))
46: printf("[007] Expecting int/0, got %s/%s\n", gettype($tmp), $tmp);
47:
48: if (mysqli_get_server_version($link) > 50000 &&
49: (!mysqli_stmt_prepare($stmt, "ALTER TABLE test MODIFY id INT NOT NULL AUTO_INCREMENT") ||
50: !mysqli_stmt_execute($stmt))) {
51: printf("[008] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
52: } else if (mysqli_get_server_version($link) < 50000){
53: mysqli_query($link, "ALTER TABLE test MODIFY id INT NOT NULL AUTO_INCREMENT");
54: }
55:
56: if (!mysqli_stmt_prepare($stmt, "INSERT INTO test(label) VALUES ('a')") ||
57: !mysqli_stmt_execute($stmt)) {
58: printf("[009] [%d] %s\n", mysqli_stmt_errno($stmt), mysqli_stmt_error($stmt));
59: }
60: if (0 === ($tmp = mysqli_stmt_insert_id($stmt)))
61: printf("[010] Expecting int/any non zero, got %s/%s\n", gettype($tmp), $tmp);
62: mysqli_stmt_close($stmt);
63:
64: mysqli_close($link);
65:
66: var_dump(mysqli_stmt_insert_id($stmt));
67:
68: print "done!";
69: ?>
70: --CLEAN--
71: <?php
72: require_once("clean_table.inc");
73: ?>
74: --EXPECTF--
75: Warning: mysqli_stmt_insert_id(): Couldn't fetch mysqli_stmt in %s on line %d
76: NULL
77: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>