1--TEST--
2PDO_DBLIB: Ensure quote function returns expected results
3--EXTENSIONS--
4pdo_dblib
5--SKIPIF--
6<?php
7require __DIR__ . '/config.inc';
8getDbConnection();
9?>
10--FILE--
11<?php
12require __DIR__ . '/config.inc';
13$db = getDbConnection();
14var_dump($db->quote(true, PDO::PARAM_BOOL));
15var_dump($db->quote(false, PDO::PARAM_BOOL));
16var_dump($db->quote(42, PDO::PARAM_INT));
17var_dump($db->quote(null, PDO::PARAM_NULL));
18var_dump($db->quote('\'', PDO::PARAM_STR));
19var_dump($db->quote('foo', PDO::PARAM_STR));
20var_dump($db->quote('foo', PDO::PARAM_STR | PDO::PARAM_STR_CHAR));
21var_dump($db->quote('über', PDO::PARAM_STR | PDO::PARAM_STR_NATL));
22
23var_dump($db->getAttribute(PDO::ATTR_DEFAULT_STR_PARAM) === PDO::PARAM_STR_CHAR);
24$db->setAttribute(PDO::ATTR_DEFAULT_STR_PARAM, PDO::PARAM_STR_NATL);
25var_dump($db->getAttribute(PDO::ATTR_DEFAULT_STR_PARAM) === PDO::PARAM_STR_NATL);
26
27var_dump($db->quote('foo', PDO::PARAM_STR | PDO::PARAM_STR_CHAR));
28var_dump($db->quote('über', PDO::PARAM_STR));
29var_dump($db->quote('über', PDO::PARAM_STR | PDO::PARAM_STR_NATL));
30
31$db = getDbConnection(PDO::class, [PDO::ATTR_DEFAULT_STR_PARAM => PDO::PARAM_STR_NATL]);
32var_dump($db->getAttribute(PDO::ATTR_DEFAULT_STR_PARAM) === PDO::PARAM_STR_NATL);
33
34?>
35--EXPECTF--
36string(3) "'1'"
37string(2) "''"
38string(4) "'42'"
39
40Deprecated: PDO::quote(): Passing null to parameter #1 ($string) of type string is deprecated in %s on line %d
41string(2) "''"
42string(4) "''''"
43string(5) "'foo'"
44string(5) "'foo'"
45string(8) "N'über'"
46bool(true)
47bool(true)
48string(5) "'foo'"
49string(8) "N'über'"
50string(8) "N'über'"
51bool(true)
52