1--TEST--
2PDO MySQL PECL Bug #5802 (bindParam/bindValue retain the is_null flag)
3--SKIPIF--
4<?php
5if (!extension_loaded('pdo') || !extension_loaded('pdo_mysql')) die('skip not loaded');
6require __DIR__ . '/config.inc';
7require __DIR__ . '/../../../ext/pdo/tests/pdo_test.inc';
8PDOTest::skip();
9?>
10--FILE--
11<?php
12require __DIR__ . '/../../../ext/pdo/tests/pdo_test.inc';
13$db = PDOTest::test_factory(__DIR__. '/common.phpt');
14
15$db->exec('create table test ( bar char(3) NULL )');
16$stmt = $db->prepare('insert into test (bar) values(:bar)') or var_dump($db->errorInfo());
17
18$bar = 'foo';
19$stmt->bindParam(':bar', $bar);
20$stmt->execute() or var_dump($stmt->errorInfo());
21
22$bar = null;
23$stmt->bindParam(':bar', $bar);
24$stmt->execute() or var_dump($stmt->errorInfo());
25
26$bar = 'qaz';
27$stmt->bindParam(':bar', $bar);
28$stmt->execute() or var_dump($stmt->errorInfo());
29
30$stmt = $db->prepare('select * from test') or var_dump($db->errorInfo());
31
32if($stmt) $stmt->execute();
33if($stmt) var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
34
35print "done!";
36?>
37--CLEAN--
38<?php
39require __DIR__ . '/mysql_pdo_test.inc';
40$db = MySQLPDOTest::factory();
41$db->exec('DROP TABLE IF EXISTS test');
42?>
43--EXPECT--
44array(3) {
45  [0]=>
46  array(1) {
47    ["bar"]=>
48    string(3) "foo"
49  }
50  [1]=>
51  array(1) {
52    ["bar"]=>
53    NULL
54  }
55  [2]=>
56  array(1) {
57    ["bar"]=>
58    string(3) "qaz"
59  }
60}
61done!
62