xref: /PHP-8.4/ext/mysqli/tests/bug32405.phpt (revision a21edc52)
1--TEST--
2Bug #32405 (mysqli->fetch() is returning bad data)
3--EXTENSIONS--
4mysqli
5--SKIPIF--
6<?php
7require_once 'skipifconnectfailure.inc';
8?>
9--FILE--
10<?php
11    require_once 'connect.inc';
12
13    /*** test mysqli_connect 127.0.0.1 ***/
14    $link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket);
15    mysqli_select_db($link, "test");
16    mysqli_query($link, "SET sql_mode=''");
17
18    /* two fields are needed. the problem does not occur with 1 field only selected. */
19    $link->query("CREATE TABLE test_users(user_id int(10) unsigned NOT NULL auto_increment, login varchar(50) default '', PRIMARY KEY (user_id))");
20    $link->query('INSERT INTO test_users VALUES (NULL, "user1"), (NULL, "user2"), (NULL, "user3"), (NULL, "user4")');
21
22
23    if ($stmt = $link->prepare("SELECT SQL_NO_CACHE user_id, login FROM test_users")) {
24            $stmt->execute();
25                $stmt->bind_result($col1, $col2);
26                while ($stmt->fetch()) {
27                    var_dump($col1, $col2);
28            }
29            $stmt->close();
30    }
31
32    mysqli_query($link,"DROP TABLE test_users");
33    mysqli_close($link);
34?>
35--CLEAN--
36<?php
37require_once 'connect.inc';
38if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
39   printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
40
41if (!mysqli_query($link, "DROP TABLE IF EXISTS test_users"))
42    printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
43
44mysqli_close($link);
45?>
46--EXPECTF--
47int(1)
48%s(5) "user1"
49int(2)
50%s(5) "user2"
51int(3)
52%s(5) "user3"
53int(4)
54%s(5) "user4"
55