mirror of
https://github.com/php/php-src.git
synced 2024-11-24 10:24:11 +08:00
Another fix for test fail
This commit is contained in:
parent
241b1a7840
commit
6771f5590c
@ -2486,6 +2486,7 @@ static zval *row_prop_read(zval *object, zval *member, int type, void **cache_sl
|
||||
pdo_stmt_t *stmt = row->stmt;
|
||||
int colno = -1;
|
||||
zval zobj;
|
||||
zend_long lval;
|
||||
|
||||
ZVAL_NULL(rv);
|
||||
if (stmt) {
|
||||
@ -2493,6 +2494,11 @@ static zval *row_prop_read(zval *object, zval *member, int type, void **cache_sl
|
||||
if (Z_LVAL_P(member) >= 0 && Z_LVAL_P(member) < stmt->column_count) {
|
||||
fetch_value(stmt, rv, Z_LVAL_P(member), NULL TSRMLS_CC);
|
||||
}
|
||||
} else if (Z_TYPE_P(member) == IS_STRING
|
||||
&& is_numeric_string_ex(Z_STRVAL_P(member), Z_STRLEN_P(member), &lval, NULL, 0, NULL) == IS_LONG) {
|
||||
if (lval >= 0 && lval < stmt->column_count) {
|
||||
fetch_value(stmt, rv, lval, NULL TSRMLS_CC);
|
||||
}
|
||||
} else {
|
||||
convert_to_string(member);
|
||||
/* TODO: replace this with a hash of available column names to column
|
||||
@ -2541,19 +2547,24 @@ static int row_prop_exists(zval *object, zval *member, int check_empty, void **c
|
||||
pdo_row_t *row = (pdo_row_t *)Z_OBJ_P(object);
|
||||
pdo_stmt_t *stmt = row->stmt;
|
||||
int colno = -1;
|
||||
zend_long lval;
|
||||
|
||||
if (stmt) {
|
||||
if (Z_TYPE_P(member) == IS_LONG) {
|
||||
return Z_LVAL_P(member) >= 0 && Z_LVAL_P(member) < stmt->column_count;
|
||||
} else if (Z_TYPE_P(member) == IS_STRING) {
|
||||
if (is_numeric_string_ex(Z_STRVAL_P(member), Z_STRLEN_P(member), &lval, NULL, 0, NULL) == IS_LONG) {
|
||||
return lval >=0 && lval < stmt->column_count;
|
||||
}
|
||||
} else {
|
||||
convert_to_string(member);
|
||||
}
|
||||
|
||||
/* TODO: replace this with a hash of available column names to column
|
||||
* numbers */
|
||||
for (colno = 0; colno < stmt->column_count; colno++) {
|
||||
if (strcmp(stmt->columns[colno].name, Z_STRVAL_P(member)) == 0) {
|
||||
return 1;
|
||||
}
|
||||
/* TODO: replace this with a hash of available column names to column
|
||||
* numbers */
|
||||
for (colno = 0; colno < stmt->column_count; colno++) {
|
||||
if (strcmp(stmt->columns[colno].name, Z_STRVAL_P(member)) == 0) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user