1--TEST--
2Playing with datatype change between prepare and execute
3--SKIPIF--
4<?php
5require_once('skipif.inc');
6require_once('skipifemb.inc');
7require_once('skipifconnectfailure.inc');
8?>
9--FILE--
10<?php
11    require_once("connect.inc");
12    if (!$c1 = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
13        printf("Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
14            $host, $user, $db, $port, $socket);
15        exit(1);
16    }
17    if (!$c2 = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
18        printf("Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
19            $host, $user, $db, $port, $socket);
20        exit(1);
21    }
22
23    $c1->query("use $db");
24    $c2->query("use $db");
25    $c1->query("drop table if exists type_change");
26    $c1->query("create table type_change(a int, b char(10)) ENGINE = " . $engine);
27    $c1->query("insert into type_change values (1, 'one'), (2, 'two')");
28    $s1 = $c1->prepare("select a from type_change order by a");
29    var_dump($s1->execute(), $s1->bind_result($col1));
30    echo "---- Row 1\n";
31    var_dump($s1->fetch());
32    var_dump($col1);
33    echo "---- Row 2\n";
34    var_dump($s1->fetch());
35    var_dump($col1);
36    echo "---- Row 3\n";
37    var_dump($s1->fetch());
38    echo "----\n";
39
40    echo "ALTER\n";
41    var_dump($c2->query("alter table type_change drop a"));
42    var_dump($s1->execute());
43    var_dump($c1->error);
44
45    echo "---- Row 1\n";
46    var_dump($s1->fetch());
47    var_dump($col1);
48    echo "---- Row 2\n";
49    var_dump($s1->fetch());
50    var_dump($col1);
51    echo "---- Row 3\n";
52    var_dump($s1->fetch());
53    echo "----\n";
54
55    echo "done!";
56?>
57--CLEAN--
58<?php
59require_once("connect.inc");
60if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket))
61   printf("[c001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
62
63if (!mysqli_query($link, "DROP TABLE IF EXISTS type_change"))
64    printf("[c002] Cannot drop table, [%d] %s\n", mysqli_errno($link), mysqli_error($link));
65
66mysqli_close($link);
67?>
68--EXPECT--
69bool(true)
70bool(true)
71---- Row 1
72bool(true)
73int(1)
74---- Row 2
75bool(true)
76int(2)
77---- Row 3
78NULL
79----
80ALTER
81bool(true)
82bool(false)
83string(34) "Unknown column 'a' in 'field list'"
84---- Row 1
85bool(false)
86int(2)
87---- Row 2
88bool(false)
89int(2)
90---- Row 3
91bool(false)
92----
93done!
94