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