xref: /PHP-7.4/ext/mysqli/tests/036.phpt (revision e3e67b72)
1--TEST--
2function test: mysqli_insert_id()
3--SKIPIF--
4<?php
5    if (PHP_INT_SIZE == 8) {
6        echo 'skip test valid only for 32bit systems';
7        exit;
8    }
9    require_once('skipif.inc');
10    require_once('skipifconnectfailure.inc');
11?>
12--FILE--
13<?php
14    require_once("connect.inc");
15
16    /*** test mysqli_connect 127.0.0.1 ***/
17    $link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket);
18
19    mysqli_select_db($link, $db);
20
21    mysqli_query($link, "DROP TABLE IF EXISTS t036");
22    mysqli_query($link, "CREATE TABLE t036 (a bigint not null auto_increment primary key, b varchar(10)) ENGINE = " . $engine);
23
24    mysqli_query($link, "INSERT INTO t036 (b) VALUES ('foo1')");
25    $test[] = mysqli_insert_id($link);
26
27    /* we have to insert more values, cause lexer sets auto_increment to max_int
28       see mysql bug #54. So we don't check for the value, only for type (which must
29       be type string)
30    */
31
32    mysqli_query($link, "ALTER TABLE t036 AUTO_INCREMENT=9999999999999998");
33    mysqli_query($link, "INSERT INTO t036 (b) VALUES ('foo2')");
34    mysqli_query($link, "INSERT INTO t036 (b) VALUES ('foo3')");
35    mysqli_query($link, "INSERT INTO t036 (b) VALUES ('foo4')");
36    $x = mysqli_insert_id($link);
37    $test[] = is_string($x);
38
39    var_dump($test);
40
41    mysqli_query($link, "DROP TABLE IF EXISTS t036");
42    mysqli_close($link);
43    print "done!";
44?>
45--CLEAN--
46<?php
47require_once("connect.inc");
48if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
49   printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
50
51if (!mysqli_query($link, "DROP TABLE IF EXISTS t036"))
52    printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
53
54mysqli_close($link);
55?>
56--EXPECT--
57array(2) {
58  [0]=>
59  int(1)
60  [1]=>
61  bool(true)
62}
63done!
64