/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ext/pdo_pgsql/tests/bug62593.phpt
68 строк
2 KB
KentarouTakeda
test(pdo_pgsql): Exclude `pdo` implicitly required by `pdo_pgsql` from `EXTENSIONS` (#16116)
29 сен 2024, 10:20
Не верифицирован
29 сен 2024, 10:20
6fb81d2
Код
Авторство
О чём код?
--TEST-- PDO PgSQL Bug #62593 (Emulate prepares behave strangely with PARAM_BOOL) --EXTENSIONS-- pdo_pgsql --SKIPIF-- <?php require __DIR__ . '/config.inc'; require __DIR__ . '/../../../ext/pdo/tests/pdo_test.inc'; PDOTest::skip(); ?> --FILE-- <?php require __DIR__ . '/../../../ext/pdo/tests/pdo_test.inc'; $db = PDOTest::test_factory(__DIR__ . '/common.phpt'); $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, true); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); $db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false); $errors = array(); $value = true; $query = $db->prepare('SELECT :foo IS FALSE as val_is_false'); $query->bindValue(':foo', $value, PDO::PARAM_BOOL); $query->execute(); $errors[] = $query->errorInfo(); var_dump($value); $query->bindValue(':foo', 0, PDO::PARAM_BOOL); $query->execute(); $errors[] = $query->errorInfo(); // Verify bindParam maintains reference and only passes when execute is called $value = true; $query->bindParam(':foo', $value, PDO::PARAM_BOOL); $value = false; $query->execute(); $errors[] = $query->errorInfo(); var_dump($value); // Try with strings - Bug #68351 $value = '0'; $query->bindParam(':foo', $value, PDO::PARAM_BOOL); $query->execute(); $errors[] = $query->errorInfo(); var_dump($query->fetchColumn()); $value = "abc"; $query->bindParam(':foo', $value, PDO::PARAM_BOOL); $query->execute(); $errors[] = $query->errorInfo(); var_dump($query->fetchColumn()); $expect = 'No errors found'; foreach ($errors as $error) { if (null !== $error[2] && strpos('Invalid text representation', $error[2]) !== false) { $expect = 'Invalid boolean found'; } } echo $expect; ?> --EXPECT-- bool(true) bool(false) bool(true) bool(false) No errors found