From: Johannes Schlüter Date: Mon, 3 Mar 2008 19:00:45 +0000 (+0000) Subject: MFH: Fix get_parent_class() of PDORow instances X-Git-Tag: BEFORE_NEW_PARAMETER_PARSE~713 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1aa32afa8ab6d6f6011b322766d8aaf210b63501;p=php MFH: Fix get_parent_class() of PDORow instances --- diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index 45b1b6c0e3..356962de1d 100755 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -2675,9 +2675,13 @@ static zend_class_entry *row_get_ce(zval *object TSRMLS_DC) static int row_get_classname(zval *object, char **class_name, zend_uint *class_name_len, int parent TSRMLS_DC) { - *class_name = estrndup("PDORow", sizeof("PDORow")-1); - *class_name_len = sizeof("PDORow")-1; - return 0; + if (parent) { + return FAILURE; + } else { + *class_name = estrndup("PDORow", sizeof("PDORow")-1); + *class_name_len = sizeof("PDORow")-1; + return SUCCESS; + } } static int row_compare(zval *object1, zval *object2 TSRMLS_DC) diff --git a/ext/pdo/tests/pdo_035.phpt b/ext/pdo/tests/pdo_035.phpt new file mode 100644 index 0000000000..c35c50432d --- /dev/null +++ b/ext/pdo/tests/pdo_035.phpt @@ -0,0 +1,22 @@ +--TEST-- +PDO Common: PDORow + get_parent_class() +--SKIPIF-- + +--FILE-- +exec('CREATE TABLE test (id int)'); +$db->exec('INSERT INTO test VALUES (23)'); + +$stmt = $db->prepare('SELECT id FROM test'); +$stmt->execute(); +$result = $stmt->fetch(PDO::FETCH_LAZY); + +echo get_class($result), "\n"; +var_dump(get_parent_class($result)); +?> +--EXPECT-- +PDORow +bool(false)