Skip to content

Commit 7d4fa10

Browse files
committed
[pdo] fix set and get attr
1 parent dfaf798 commit 7d4fa10

File tree

5 files changed

+27
-8
lines changed

5 files changed

+27
-8
lines changed

ext/pdo/pdo_dbh.c

+3
Original file line numberDiff line numberDiff line change
@@ -913,6 +913,9 @@ PHP_METHOD(PDO, getAttribute)
913913
return;
914914
case PDO_ATTR_DEFAULT_FETCH_MODE:
915915
RETURN_LONG(dbh->default_fetch_type);
916+
917+
case PDO_ATTR_STRINGIFY_FETCHES:
918+
RETURN_BOOL(dbh->stringify);
916919
default:
917920
break;
918921
}

ext/pdo_dblib/dblib_driver.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -290,10 +290,10 @@ static bool dblib_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
290290
}
291291
return SUCCEED == dbsettime(lval);
292292
case PDO_DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER:
293-
if (!pdo_get_long_param(&lval, val)) {
293+
if (!pdo_get_bool_param(&bval, val)) {
294294
return false;
295295
}
296-
H->stringify_uniqueidentifier = lval;
296+
H->stringify_uniqueidentifier = bval;
297297
return true;
298298
case PDO_DBLIB_ATTR_SKIP_EMPTY_ROWSETS:
299299
if (!pdo_get_bool_param(&bval, val)) {
@@ -302,10 +302,10 @@ static bool dblib_set_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
302302
H->skip_empty_rowsets = bval;
303303
return true;
304304
case PDO_DBLIB_ATTR_DATETIME_CONVERT:
305-
if (!pdo_get_long_param(&lval, val)) {
305+
if (!pdo_get_bool_param(&bval, val)) {
306306
return false;
307307
}
308-
H->datetime_convert = lval;
308+
H->datetime_convert = bval;
309309
return true;
310310
default:
311311
return false;

ext/pdo_firebird/firebird_driver.c

+13-1
Original file line numberDiff line numberDiff line change
@@ -1080,7 +1080,7 @@ static int pdo_firebird_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val)
10801080
char tmp[INFO_BUF_LEN];
10811081

10821082
case PDO_ATTR_AUTOCOMMIT:
1083-
ZVAL_LONG(val,dbh->auto_commit);
1083+
ZVAL_BOOL(val,dbh->auto_commit);
10841084
return 1;
10851085

10861086
case PDO_ATTR_CONNECTION_STATUS:
@@ -1124,6 +1124,18 @@ static int pdo_firebird_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *val)
11241124
case PDO_ATTR_FETCH_TABLE_NAMES:
11251125
ZVAL_BOOL(val, H->fetch_table_names);
11261126
return 1;
1127+
1128+
case PDO_FB_ATTR_DATE_FORMAT:
1129+
ZVAL_STRING(val, H->date_format);
1130+
return 1;
1131+
1132+
case PDO_FB_ATTR_TIME_FORMAT:
1133+
ZVAL_STRING(val, H->time_format);
1134+
return 1;
1135+
1136+
case PDO_FB_ATTR_TIMESTAMP_FORMAT:
1137+
ZVAL_STRING(val, H->timestamp_format);
1138+
return 1;
11271139
}
11281140
return 0;
11291141
}

ext/pdo_mysql/mysql_driver.c

+6-2
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ static int pdo_mysql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_
532532
break;
533533

534534
case PDO_ATTR_AUTOCOMMIT:
535-
ZVAL_LONG(return_value, dbh->auto_commit);
535+
ZVAL_BOOL(return_value, dbh->auto_commit);
536536
break;
537537

538538
case PDO_ATTR_DEFAULT_STR_PARAM:
@@ -545,7 +545,7 @@ static int pdo_mysql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_
545545

546546
case PDO_ATTR_EMULATE_PREPARES:
547547
case PDO_MYSQL_ATTR_DIRECT_QUERY:
548-
ZVAL_LONG(return_value, H->emulate_prepare);
548+
ZVAL_BOOL(return_value, H->emulate_prepare);
549549
break;
550550

551551
#ifndef PDO_USE_MYSQLND
@@ -576,6 +576,10 @@ static int pdo_mysql_get_attribute(pdo_dbh_t *dbh, zend_long attr, zval *return_
576576
}
577577
#endif
578578

579+
case PDO_ATTR_FETCH_TABLE_NAMES:
580+
ZVAL_BOOL(return_value, H->fetch_table_names);
581+
break;
582+
579583
default:
580584
PDO_DBG_RETURN(0);
581585
}

ext/pdo_odbc/odbc_driver.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ static int odbc_handle_get_attr(pdo_dbh_t *dbh, zend_long attr, zval *val)
384384
case PDO_ATTR_CONNECTION_STATUS:
385385
break;
386386
case PDO_ODBC_ATTR_ASSUME_UTF8:
387-
ZVAL_BOOL(val, H->assume_utf8 ? 1 : 0);
387+
ZVAL_BOOL(val, H->assume_utf8);
388388
return 1;
389389

390390
}

0 commit comments

Comments
 (0)