Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ext/mysqli/tests/bug77956.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,5 @@ $link->close();
unlink('bug77956.data');
?>
--EXPECT--
[006] [2000] LOAD DATA LOCAL INFILE is forbidden, check related settings like mysqli.allow_local_infile|mysqli.local_infile_directory or PDO::MYSQL_ATTR_LOCAL_INFILE|PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY
[006] [2000] LOAD DATA LOCAL INFILE is forbidden, check related settings like mysqli.allow_local_infile|mysqli.local_infile_directory or Pdo\Mysql::ATTR_LOCAL_INFILE|Pdo\Mysql::ATTR_LOCAL_INFILE_DIRECTORY
done
2 changes: 1 addition & 1 deletion ext/mysqlnd/mysqlnd_loaddata.c
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ mysqlnd_handle_local_infile(MYSQLND_CONN_DATA * conn, const char * const filenam
SET_CLIENT_ERROR(conn->error_info, CR_LOAD_DATA_LOCAL_INFILE_REJECTED, UNKNOWN_SQLSTATE,
"LOAD DATA LOCAL INFILE is forbidden, check related settings like "
"mysqli.allow_local_infile|mysqli.local_infile_directory or "
"PDO::MYSQL_ATTR_LOCAL_INFILE|PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY");
"Pdo\\Mysql::ATTR_LOCAL_INFILE|Pdo\\Mysql::ATTR_LOCAL_INFILE_DIRECTORY");
prerequisities_ok = FALSE;
}

Expand Down
46 changes: 44 additions & 2 deletions ext/pdo/php_pdo.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
#define PHP_PDO_H

#include "zend.h"
#include "Zend/zend_compile.h"
#include "Zend/zend_API.h"
#include "Zend/zend_attributes.h"

PHPAPI extern zend_module_entry pdo_module_entry;
#define phpext_pdo_ptr &pdo_module_entry
Expand Down Expand Up @@ -50,8 +53,47 @@ PHP_MINIT_FUNCTION(pdo);
PHP_MSHUTDOWN_FUNCTION(pdo);
PHP_MINFO_FUNCTION(pdo);

#define REGISTER_PDO_CLASS_CONST_LONG(const_name, value) \
zend_declare_class_constant_long(php_pdo_get_dbh_ce(), const_name, sizeof(const_name)-1, (zend_long)value);
static inline void pdo_declare_deprecated_class_constant_long(
zend_class_entry *ce, const char *name, zend_long value,
zend_string *since, const char *message) {

zval zvalue;
ZVAL_LONG(&zvalue, value);

zend_string *name_str = zend_string_init_interned(name, strlen(name), true);

zend_class_constant *constant = zend_declare_class_constant_ex(
ce, name_str, &zvalue,
ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED, NULL);

zend_attribute *attr = zend_add_class_constant_attribute(ce, constant,
ZSTR_KNOWN(ZEND_STR_DEPRECATED_CAPITALIZED),
1 + (message != NULL));

attr->args[0].name = ZSTR_KNOWN(ZEND_STR_SINCE);
ZVAL_STR(&attr->args[0].value, since);

if (message) {
zend_string *message_str = zend_string_init_interned(message, strlen(message), true);

attr->args[1].name = ZSTR_KNOWN(ZEND_STR_MESSAGE);
ZVAL_STR(&attr->args[1].value, message_str);
}
}

/* Declare a constant deprecated in 8.5 */
#define REGISTER_PDO_CLASS_CONST_LONG_DEPRECATED_85(const_name, value) \
pdo_declare_deprecated_class_constant_long(php_pdo_get_dbh_ce(), \
const_name, (zend_long)value, \
ZSTR_KNOWN(ZEND_STR_8_DOT_5), NULL)

/* Declare one of the constants deprecated in https://wiki.php.net/rfc/deprecations_php_8_5
* "Deprecate driver specific PDO constants and methods" */
#define REGISTER_PDO_CLASS_CONST_LONG_DEPRECATED_ALIAS_85(name, old_prefix, new_prefix, value) \
pdo_declare_deprecated_class_constant_long(php_pdo_get_dbh_ce(), \
old_prefix name, (zend_long)value, \
ZSTR_KNOWN(ZEND_STR_8_DOT_5), \
"use " new_prefix name " instead")

#define LONG_CONST(c) (zend_long) c

Expand Down
2 changes: 1 addition & 1 deletion ext/pdo/tests/pdo_016.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
$db = PDOTest::factory();

if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
$db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
$db->setAttribute(Pdo\Mysql::ATTR_USE_BUFFERED_QUERY, true);
}

$db->exec('CREATE TABLE test016(idx int NOT NULL PRIMARY KEY, txt VARCHAR(20))');
Expand Down
2 changes: 1 addition & 1 deletion ext/pdo/tests/pdo_016a.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
$db = PDOTest::factory();

if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
$db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
$db->setAttribute(Pdo\Mysql::ATTR_USE_BUFFERED_QUERY, true);
}

$db->exec('CREATE TABLE test016a(idx int NOT NULL PRIMARY KEY, txt VARCHAR(20))');
Expand Down
2 changes: 1 addition & 1 deletion ext/pdo/tests/pdo_021.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
$db = PDOTest::factory();

if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
$db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
$db->setAttribute(Pdo\Mysql::ATTR_USE_BUFFERED_QUERY, true);
}

$db->exec('CREATE TABLE test021(id INT NOT NULL PRIMARY KEY, val VARCHAR(10), val2 VARCHAR(16))');
Expand Down
17 changes: 10 additions & 7 deletions ext/pdo_dblib/pdo_dblib.c
Original file line number Diff line number Diff line change
Expand Up @@ -190,15 +190,18 @@ PHP_RSHUTDOWN_FUNCTION(pdo_dblib)
return SUCCESS;
}

#define REGISTER_PDO_DBLIB_CLASS_CONST_LONG_DEPRECATED_ALIAS_85(base_name, value) \
REGISTER_PDO_CLASS_CONST_LONG_DEPRECATED_ALIAS_85(base_name, "DBLIB_", "Pdo\\Dblib::", value)

PHP_MINIT_FUNCTION(pdo_dblib)
{
REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_CONNECTION_TIMEOUT", (long) PDO_DBLIB_ATTR_CONNECTION_TIMEOUT);
REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_QUERY_TIMEOUT", (long) PDO_DBLIB_ATTR_QUERY_TIMEOUT);
REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER", (long) PDO_DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER);
REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_VERSION", (long) PDO_DBLIB_ATTR_VERSION);
REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_TDS_VERSION", (long) PDO_DBLIB_ATTR_TDS_VERSION);
REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_SKIP_EMPTY_ROWSETS", (long) PDO_DBLIB_ATTR_SKIP_EMPTY_ROWSETS);
REGISTER_PDO_CLASS_CONST_LONG("DBLIB_ATTR_DATETIME_CONVERT", (long) PDO_DBLIB_ATTR_DATETIME_CONVERT);
REGISTER_PDO_DBLIB_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_CONNECTION_TIMEOUT", (long) PDO_DBLIB_ATTR_CONNECTION_TIMEOUT);
REGISTER_PDO_DBLIB_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_QUERY_TIMEOUT", (long) PDO_DBLIB_ATTR_QUERY_TIMEOUT);
REGISTER_PDO_DBLIB_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_STRINGIFY_UNIQUEIDENTIFIER", (long) PDO_DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER);
REGISTER_PDO_DBLIB_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_VERSION", (long) PDO_DBLIB_ATTR_VERSION);
REGISTER_PDO_DBLIB_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_TDS_VERSION", (long) PDO_DBLIB_ATTR_TDS_VERSION);
REGISTER_PDO_DBLIB_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_SKIP_EMPTY_ROWSETS", (long) PDO_DBLIB_ATTR_SKIP_EMPTY_ROWSETS);
REGISTER_PDO_DBLIB_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_DATETIME_CONVERT", (long) PDO_DBLIB_ATTR_DATETIME_CONVERT);

if (FAIL == dbinit()) {
return FAILURE;
Expand Down
10 changes: 5 additions & 5 deletions ext/pdo_dblib/tests/bug_69592.phpt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--TEST--
PDO_DBLIB: PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS for skip junk resultsets on SET NOCOUNT expression
PDO_DBLIB: Pdo\Dblib::ATTR_SKIP_EMPTY_ROWSETS for skip junk resultsets on SET NOCOUNT expression
--EXTENSIONS--
pdo_dblib
--SKIPIF--
Expand All @@ -18,7 +18,7 @@ $sql = '
SELECT 0 AS [result]
';

var_dump($db->getAttribute(PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS));
var_dump($db->getAttribute(Pdo\Dblib::ATTR_SKIP_EMPTY_ROWSETS));

$stmt = $db->query($sql);
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
Expand All @@ -27,15 +27,15 @@ var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
$stmt->closeCursor();


$db->setAttribute(PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS, true);
var_dump($db->getAttribute(PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS));
$db->setAttribute(Pdo\Dblib::ATTR_SKIP_EMPTY_ROWSETS, true);
var_dump($db->getAttribute(Pdo\Dblib::ATTR_SKIP_EMPTY_ROWSETS));

$stmt = $db->query($sql);
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
var_dump($stmt->nextRowset());
var_dump($stmt->fetchAll(PDO::FETCH_ASSOC));
$stmt->closeCursor();
var_dump($db->getAttribute(PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS));
var_dump($db->getAttribute(Pdo\Dblib::ATTR_SKIP_EMPTY_ROWSETS));

?>
--EXPECT--
Expand Down
2 changes: 1 addition & 1 deletion ext/pdo_dblib/tests/bug_73396.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pdo_dblib
<?php
require __DIR__ . '/config.inc';
$db = getDbConnection();
if (in_array($db->getAttribute(PDO::DBLIB_ATTR_TDS_VERSION), ['4.2', '4.6', '5.0', '6.0', '7.0'])) die('skip bigint type is unsupported by active TDS version');
if (in_array($db->getAttribute(Pdo\Dblib::ATTR_TDS_VERSION), ['4.2', '4.6', '5.0', '6.0', '7.0'])) die('skip bigint type is unsupported by active TDS version');
?>
--FILE--
<?php
Expand Down
2 changes: 1 addition & 1 deletion ext/pdo_dblib/tests/config.inc
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// assume this bug isn't present if not using FreeTDS
// otherwise require FreeTDS>=1.1
function driver_supports_batch_statements_without_select($db) {
$version = $db->getAttribute(PDO::DBLIB_ATTR_VERSION);
$version = $db->getAttribute(Pdo\Dblib::ATTR_VERSION);
return !strstartswith($version, 'freetds ') || !strstartswith($version, 'freetds v1.0');
}

Expand Down
8 changes: 4 additions & 4 deletions ext/pdo_dblib/tests/datetime2.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pdo_dblib
<?php
require __DIR__ . '/config.inc';
$db = getDbConnection();
if (in_array($db->getAttribute(PDO::DBLIB_ATTR_TDS_VERSION), ['4.2', '4.6', '5.0', '6.0', '7.0', '7.1', '7.2'])) die('skip feature unsupported by this TDS version');
if (in_array($db->getAttribute(Pdo\Dblib::ATTR_TDS_VERSION), ['4.2', '4.6', '5.0', '6.0', '7.0', '7.1', '7.2'])) die('skip feature unsupported by this TDS version');
?>
--FILE--
<?php
Expand All @@ -16,13 +16,13 @@ $db = getDbConnection();

$sql = "SELECT convert(datetime2, '10231017 10:22:44.1355318') AS [d]";

var_dump($db->getAttribute(PDO::DBLIB_ATTR_DATETIME_CONVERT));
var_dump($db->getAttribute(Pdo\Dblib::ATTR_DATETIME_CONVERT));

$stmt = $db->query($sql);
var_dump($stmt->fetch(PDO::FETCH_ASSOC));

$db->setAttribute(PDO::DBLIB_ATTR_DATETIME_CONVERT, 1);
var_dump($db->getAttribute(PDO::DBLIB_ATTR_DATETIME_CONVERT));
$db->setAttribute(Pdo\Dblib::ATTR_DATETIME_CONVERT, 1);
var_dump($db->getAttribute(Pdo\Dblib::ATTR_DATETIME_CONVERT));
$stmt = $db->query($sql);
var_dump($stmt->fetch(PDO::FETCH_ASSOC));

Expand Down
8 changes: 4 additions & 4 deletions ext/pdo_dblib/tests/datetime_convert.phpt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--TEST--
PDO_DBLIB: PDO::DBLIB_ATTR_DATETIME_CONVERT
PDO_DBLIB: Pdo\Dblib::ATTR_DATETIME_CONVERT
--EXTENSIONS--
pdo_dblib
--SKIPIF--
Expand All @@ -15,14 +15,14 @@ $db = getDbConnection();

$sql = "SELECT convert(datetime, '20171027 10:22:44.135') AS [d]";

var_dump($db->getAttribute(PDO::DBLIB_ATTR_DATETIME_CONVERT));
var_dump($db->getAttribute(Pdo\Dblib::ATTR_DATETIME_CONVERT));

$stmt = $db->query($sql);
var_dump($stmt->fetch(PDO::FETCH_ASSOC));

// assume default date format: %b %e %Y %I:%M:%S:%z%p
$db->setAttribute(PDO::DBLIB_ATTR_DATETIME_CONVERT, 1);
var_dump($db->getAttribute(PDO::DBLIB_ATTR_DATETIME_CONVERT));
$db->setAttribute(Pdo\Dblib::ATTR_DATETIME_CONVERT, 1);
var_dump($db->getAttribute(Pdo\Dblib::ATTR_DATETIME_CONVERT));
$stmt = $db->query($sql);
var_dump($stmt->fetch(PDO::FETCH_ASSOC));

Expand Down
4 changes: 2 additions & 2 deletions ext/pdo_dblib/tests/dbtds.phpt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--TEST--
PDO_DBLIB: \PDO::DBLIB_ATTR_TDS_VERSION exposes a string or false
PDO_DBLIB: \Pdo\Dblib::ATTR_TDS_VERSION exposes a string or false
--EXTENSIONS--
pdo_dblib
--SKIPIF--
Expand All @@ -13,7 +13,7 @@ require __DIR__ . '/config.inc';

$db = getDbConnection();

$version = $db->getAttribute(PDO::DBLIB_ATTR_TDS_VERSION);
$version = $db->getAttribute(Pdo\Dblib::ATTR_TDS_VERSION);
var_dump((is_string($version) && strlen($version)) || $version === false);

?>
Expand Down
4 changes: 2 additions & 2 deletions ext/pdo_dblib/tests/dbversion.phpt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--TEST--
PDO_DBLIB: \PDO::DBLIB_ATTR_VERSION exposes a string
PDO_DBLIB: \Pdo\Dblib::ATTR_VERSION exposes a string
--EXTENSIONS--
pdo_dblib
--SKIPIF--
Expand All @@ -13,7 +13,7 @@ require __DIR__ . '/config.inc';

$db = getDbConnection();

$version = $db->getAttribute(PDO::DBLIB_ATTR_VERSION);
$version = $db->getAttribute(Pdo\Dblib::ATTR_VERSION);
var_dump(is_string($version) && strlen($version));

?>
Expand Down
39 changes: 39 additions & 0 deletions ext/pdo_dblib/tests/php_8.5_deprecations.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
--TEST--
PDO_dblib: PHP 8.5 deprecations
--EXTENSIONS--
pdo_dblib
--FILE--
<?php

var_dump(
PDO::DBLIB_ATTR_CONNECTION_TIMEOUT,
PDO::DBLIB_ATTR_QUERY_TIMEOUT,
PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER,
PDO::DBLIB_ATTR_VERSION,
PDO::DBLIB_ATTR_TDS_VERSION,
PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS,
PDO::DBLIB_ATTR_DATETIME_CONVERT,
);

?>
--EXPECTF--
Deprecated: Constant PDO::DBLIB_ATTR_CONNECTION_TIMEOUT is deprecated since 8.5, use Pdo\Dblib::ATTR_CONNECTION_TIMEOUT instead in %s on line %d

Deprecated: Constant PDO::DBLIB_ATTR_QUERY_TIMEOUT is deprecated since 8.5, use Pdo\Dblib::ATTR_QUERY_TIMEOUT instead in %s on line %d

Deprecated: Constant PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER is deprecated since 8.5, use Pdo\Dblib::ATTR_STRINGIFY_UNIQUEIDENTIFIER instead in %s on line %d

Deprecated: Constant PDO::DBLIB_ATTR_VERSION is deprecated since 8.5, use Pdo\Dblib::ATTR_VERSION instead in %s on line %d

Deprecated: Constant PDO::DBLIB_ATTR_TDS_VERSION is deprecated since 8.5, use Pdo\Dblib::ATTR_TDS_VERSION instead in %s on line %d

Deprecated: Constant PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS is deprecated since 8.5, use Pdo\Dblib::ATTR_SKIP_EMPTY_ROWSETS instead in %s on line %d

Deprecated: Constant PDO::DBLIB_ATTR_DATETIME_CONVERT is deprecated since 8.5, use Pdo\Dblib::ATTR_DATETIME_CONVERT instead in %s on line %d
int(1000)
int(1001)
int(1002)
int(1003)
int(1004)
int(1005)
int(1006)
12 changes: 6 additions & 6 deletions ext/pdo_dblib/tests/stringify_uniqueidentifier.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pdo_dblib
<?php
require __DIR__ . '/config.inc';
$db = getDbConnection();
if (in_array($db->getAttribute(PDO::DBLIB_ATTR_TDS_VERSION), ['4.2', '4.6'])) die('skip feature unsupported by this TDS version');
if (in_array($db->getAttribute(Pdo\Dblib::ATTR_TDS_VERSION), ['4.2', '4.6'])) die('skip feature unsupported by this TDS version');
?>
--FILE--
<?php
Expand All @@ -22,10 +22,10 @@ $sql = "SELECT CAST('$testGUID' as uniqueidentifier) as [guid]";
//--------------------------------------------------------------------------------
// 1. Get and Set the attribute
//--------------------------------------------------------------------------------
$db->setAttribute(PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER, true);
var_dump(true === $db->getAttribute(PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER));
$db->setAttribute(PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER, false);
var_dump(false === $db->getAttribute(PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER));
$db->setAttribute(Pdo\Dblib::ATTR_STRINGIFY_UNIQUEIDENTIFIER, true);
var_dump(true === $db->getAttribute(Pdo\Dblib::ATTR_STRINGIFY_UNIQUEIDENTIFIER));
$db->setAttribute(Pdo\Dblib::ATTR_STRINGIFY_UNIQUEIDENTIFIER, false);
var_dump(false === $db->getAttribute(Pdo\Dblib::ATTR_STRINGIFY_UNIQUEIDENTIFIER));


//--------------------------------------------------------------------------------
Expand Down Expand Up @@ -54,7 +54,7 @@ var_dump($row['guid'] === $testGUIDBinary);
// TODO: something from PDO::ATTR_SERVER_VERSION, PDO::ATTR_CLIENT_VERSION or PDO::ATTR_SERVER_INFO should be used
// to get TDS version and skip this test in this case.
//--------------------------------------------------------------------------------
$db->setAttribute(PDO::DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER, true);
$db->setAttribute(Pdo\Dblib::ATTR_STRINGIFY_UNIQUEIDENTIFIER, true);
$stmt = $db->query($sql);
$row = $stmt->fetch(PDO::FETCH_ASSOC);

Expand Down
4 changes: 2 additions & 2 deletions ext/pdo_dblib/tests/timeout.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ if (!$stmt->execute()) {
// pdo_dblib-specific timeout attribute, set after instance created, will control query timeout, causing this query to fail
$db = getDbConnection();
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
$db->setAttribute(PDO::DBLIB_ATTR_QUERY_TIMEOUT, 1);
$db->setAttribute(Pdo\Dblib::ATTR_QUERY_TIMEOUT, 1);
$stmt = $db->prepare($sql);
if (!$stmt->execute()) {
echo "OK\n";
Expand All @@ -57,7 +57,7 @@ if (!$stmt->execute()) {
}

// pdo_dblib-specific timeout attribute will control query timeout, causing this query to fail
$db = getDbConnection(PDO::class, [PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT, PDO::DBLIB_ATTR_QUERY_TIMEOUT => 1]);
$db = getDbConnection(PDO::class, [PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT, Pdo\Dblib::ATTR_QUERY_TIMEOUT => 1]);
$stmt = $db->prepare($sql);
if (!$stmt->execute()) {
echo "OK\n";
Expand Down
2 changes: 1 addition & 1 deletion ext/pdo_dblib/tests/types.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ $db = getDbConnection();
function get_expected_float_string() {
global $db;

switch ($db->getAttribute(PDO::DBLIB_ATTR_TDS_VERSION)) {
switch ($db->getAttribute(Pdo\Dblib::ATTR_TDS_VERSION)) {
case '5.0':
case '6.0':
case '7.0':
Expand Down
9 changes: 6 additions & 3 deletions ext/pdo_firebird/pdo_firebird.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,14 @@ zend_module_entry pdo_firebird_module_entry = { /* {{{ */
ZEND_GET_MODULE(pdo_firebird)
#endif

#define REGISTER_PDO_FB_CLASS_CONST_LONG_DEPRECATED_ALIAS_85(base_name, value) \
REGISTER_PDO_CLASS_CONST_LONG_DEPRECATED_ALIAS_85(base_name, "FB_", "Pdo\\Firebird::", value)

PHP_MINIT_FUNCTION(pdo_firebird) /* {{{ */
{
REGISTER_PDO_CLASS_CONST_LONG("FB_ATTR_DATE_FORMAT", (zend_long) PDO_FB_ATTR_DATE_FORMAT);
REGISTER_PDO_CLASS_CONST_LONG("FB_ATTR_TIME_FORMAT", (zend_long) PDO_FB_ATTR_TIME_FORMAT);
REGISTER_PDO_CLASS_CONST_LONG("FB_ATTR_TIMESTAMP_FORMAT", (zend_long) PDO_FB_ATTR_TIMESTAMP_FORMAT);
REGISTER_PDO_FB_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_DATE_FORMAT", (zend_long) PDO_FB_ATTR_DATE_FORMAT);
REGISTER_PDO_FB_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_TIME_FORMAT", (zend_long) PDO_FB_ATTR_TIME_FORMAT);
REGISTER_PDO_FB_CLASS_CONST_LONG_DEPRECATED_ALIAS_85("ATTR_TIMESTAMP_FORMAT", (zend_long) PDO_FB_ATTR_TIMESTAMP_FORMAT);

if (FAILURE == php_pdo_register_driver(&pdo_firebird_driver)) {
return FAILURE;
Expand Down
2 changes: 1 addition & 1 deletion ext/pdo_firebird/tests/dialect_1.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ require("testdb.inc");

$dbh = getDbConnection();
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$dbh->setAttribute(PDO::FB_ATTR_TIMESTAMP_FORMAT, '%Y-%m-%d %H:%M:%S');
$dbh->setAttribute(Pdo\Firebird::ATTR_TIMESTAMP_FORMAT, '%Y-%m-%d %H:%M:%S');

$sql =
'SELECT
Expand Down
Loading
Loading