summaryrefslogtreecommitdiff
path: root/ext/mysqli/tests/bug66124.phpt
blob: cede635e144b8f739accc342314be28243362340 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
--TEST--
Bug #66124 (mysqli under mysqlnd loses precision when bind_param with 'i')
--SKIPIF--
<?php
require_once('skipif.inc');
require_once('connect.inc');
require_once('skipifconnectfailure.inc');
?>
--FILE--
<?php
$table_drop = "DROP TABLE IF EXISTS `bug66124`";
$table_create = "CREATE TABLE `bug66124` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8";

$table_insert = "INSERT INTO `bug66124` SET `id`=?";
$table_select = "SELECT * FROM `bug66124`";
$table_delete = "DELETE FROM `bug66124`";
$id = '1311200011005001566';


require_once('connect.inc');

if (!$link = my_mysqli_connect($host, $user, $passwd, $db, $port, $socket)) {
    printf("Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
        $host, $user, $db, $port, $socket);
    exit(1);
}

$link->query($table_drop);
$link->query($table_create);

$stmt = $link->prepare($table_insert);
if (!$stmt) {
    printf("Can't prepare\n");
    exit(1);
}

echo "Using 'i':\n";
$stmt->bind_param('i', $id);

if ($stmt->execute()){
    echo "insert id:{$id}=>{$stmt->insert_id}\n";
} else {
    printf("Can't execute\n");
    exit(1);
}


$result = $link->query($table_select);

if ($result){
    while ($row = $result->fetch_assoc()) {
        echo "fetch  id:{$row['id']}\n";
    }
} else {
    printf("Can't select\n");
    exit(1);
}

$stmt->close();

$link->query($table_drop);
$link->query($table_create);


$stmt = $link->prepare($table_insert);
$stmt->bind_param('s', $id);

echo "Using 's':\n";

if ($stmt->execute()){
    echo "insert id:{$id}\n";
} else{
    printf("Can't execute\n");
    exit(1);
}

$result = $link->query($table_select);

if ($result){
    while ($row = $result->fetch_assoc()) {
        echo "fetch  id:{$row['id']}\n";
    }
} else {
    printf("Can't select\n");
    exit(1);
}

$link->close();
?>
done
--EXPECT--
Using 'i':
insert id:1311200011005001566=>1311200011005001566
fetch  id:1311200011005001566
Using 's':
insert id:1311200011005001566
fetch  id:1311200011005001566
done