1--TEST-- 2PDO_Firebird: support 1 sql dialect 3--EXTENSIONS-- 4pdo_firebird 5--SKIPIF-- 6<?php require('skipif.inc'); 7if (strpos(getenv('PDO_FIREBIRD_TEST_DSN'), 'dialect=1')===false) { 8 die('skip: PDO_FIREBIRD_TEST_DSN must contain a string "dialect=1"'); 9} 10?> 11--XLEAK-- 12A bug in firebird causes a memory leak when calling `isc_attach_database()`. 13See https://github.com/FirebirdSQL/firebird/issues/7849 14--FILE-- 15<?php 16require("testdb.inc"); 17 18$dbh = getDbConnection(); 19$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); 20$dbh->setAttribute(PDO::FB_ATTR_TIMESTAMP_FORMAT, '%Y-%m-%d %H:%M:%S'); 21 22$sql = 23'SELECT 24 1 as N, 25 2.0 as F, 26 cast(0.76 as numeric(15, 2)) as K, 27 cast(\'2019-06-12\' as date) as DT 28FROM RDB$DATABASE'; 29$query = $dbh->prepare($sql); 30$query->execute(); 31$row = $query->fetch(\PDO::FETCH_OBJ); 32var_dump($row->N); 33var_dump($row->F); 34var_dump($row->K); 35var_dump($row->DT); 36 37unset($query); 38 39$dbh->exec('RECREATE TABLE test_dialect_1(K numeric(15, 2), DT date)'); 40$sql='INSERT INTO test_dialect_1(K, DT) values(?, ?)'; 41$query = $dbh->prepare($sql); 42$query->execute([0.76, '2019-06-12']); 43unset($query); 44 45$sql='SELECT * FROM test_dialect_1'; 46$query = $dbh->prepare($sql); 47$query->execute(); 48$row = $query->fetch(\PDO::FETCH_OBJ); 49var_dump($row->K); 50var_dump($row->DT); 51 52unset($query); 53unset($dbh); 54echo "done\n"; 55 56?> 57--CLEAN-- 58<?php 59require 'testdb.inc'; 60$dbh = getDbConnection(); 61@$dbh->exec('DROP TABLE test_dialect_1'); 62unset($dbh); 63--EXPECT-- 64int(1) 65string(8) "2.000000" 66string(4) "0.76" 67string(19) "2019-06-12 00:00:00" 68string(4) "0.76" 69string(19) "2019-06-12 00:00:00" 70done 71