[PHP-CVS] svn: /php/php-src/branches/PHP_5_3/ext/pdo/ pdo_stmt.c
iliaaTue, 22 Feb 2011 15:48:25 + Revision: http://svn.php.net/viewvc?view=revision&revision=308569 Log: Fixed compiler warning Changed paths: U php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c Modified: php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c === --- php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c 2011-02-22 14:49:32 UTC (rev 308568) +++ php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c 2011-02-22 15:48:25 UTC (rev 308569) @@ -2183,7 +2183,7 @@ php_stream_printf(out TSRMLS_CC, "Key: Name: [%d] %.*s\n", len, len, str); } - php_stream_printf(out TSRMLS_CC, "paramno=%d\nname=[%d] \"%.*s\"\nis_param=%d\nparam_type=%d\n", + php_stream_printf(out TSRMLS_CC, "paramno=%ld\nname=[%d] \"%.*s\"\nis_param=%d\nparam_type=%d\n", param->paramno, param->namelen, param->namelen, param->name ? param->name : "", param->is_param, param->param_type); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/pdo/pdo_stmt.c trunk/ext/pdo/pdo_stmt.c
felipe Mon, 15 Nov 2010 18:48:48 + Revision: http://svn.php.net/viewvc?view=revision&revision=305381 Log: - Fix wrong argument to read_property call Changed paths: U php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c U php/php-src/trunk/ext/pdo/pdo_stmt.c Modified: php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c === --- php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c 2010-11-15 18:46:59 UTC (rev 305380) +++ php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c 2010-11-15 18:48:48 UTC (rev 305381) @@ -2621,7 +2621,7 @@ } if (strcmp(Z_STRVAL_P(member), "queryString") == 0) { zval_ptr_dtor(&return_value); - return std_object_handlers.read_property(object, member, IS_STRING TSRMLS_CC); + return std_object_handlers.read_property(object, member, type TSRMLS_CC); } } } Modified: php/php-src/trunk/ext/pdo/pdo_stmt.c === --- php/php-src/trunk/ext/pdo/pdo_stmt.c2010-11-15 18:46:59 UTC (rev 305380) +++ php/php-src/trunk/ext/pdo/pdo_stmt.c2010-11-15 18:48:48 UTC (rev 305381) @@ -2610,7 +2610,7 @@ } if (strcmp(Z_STRVAL_P(member), "queryString") == 0) { zval_ptr_dtor(&return_value); - return std_object_handlers.read_property(object, member, IS_STRING, key TSRMLS_CC); + return std_object_handlers.read_property(object, member, type, key TSRMLS_CC); } } } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/pdo/pdo_stmt.c branches/PHP_5_3/ext/pdo/tests/pdo_005.phpt branches/PHP_5_3/ext/pdo_mysql/tests/pdo_mysql_stmt_fetchobject.phpt branches/PHP_5_3/ext/p
johannes Thu, 11 Feb 2010 22:14:06 + Revision: http://svn.php.net/viewvc?view=revision&revision=294903 Log: Revert 290786: Fixed bug #49521 (PDO fetchObject sets values before calling constructor) Bug: http://bugs.php.net/49521 (Closed) PDO fetchObject sets values before calling constructor Changed paths: U php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c U php/php-src/branches/PHP_5_3/ext/pdo/tests/pdo_005.phpt U php/php-src/branches/PHP_5_3/ext/pdo_mysql/tests/pdo_mysql_stmt_fetchobject.phpt D php/php-src/branches/PHP_5_3/ext/pdo_sqlite/tests/bug49521.phpt U php/php-src/trunk/ext/pdo/pdo_stmt.c U php/php-src/trunk/ext/pdo/tests/pdo_005.phpt U php/php-src/trunk/ext/pdo_mysql/tests/pdo_mysql_stmt_fetchobject.phpt D php/php-src/trunk/ext/pdo_sqlite/tests/bug49521.phpt Modified: php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c === --- php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c 2010-02-11 22:13:22 UTC (rev 294902) +++ php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c 2010-02-11 22:14:06 UTC (rev 294903) @@ -1034,32 +1034,6 @@ } } - switch (how) { - case PDO_FETCH_CLASS: -if (ce->constructor && !(flags & (PDO_FETCH_PROPS_LATE | PDO_FETCH_SERIALIZE))) { - stmt->fetch.cls.fci.object_ptr = return_value; - stmt->fetch.cls.fcc.object_ptr = return_value; - if (zend_call_function(&stmt->fetch.cls.fci, &stmt->fetch.cls.fcc TSRMLS_CC) == FAILURE) { - pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "could not call class constructor" TSRMLS_CC); - return 0; - } else { - if (stmt->fetch.cls.retval_ptr) { - zval_ptr_dtor(&stmt->fetch.cls.retval_ptr); - } - } -} -if (flags & PDO_FETCH_CLASSTYPE) { - do_fetch_opt_finish(stmt, 0 TSRMLS_CC); - stmt->fetch.cls.ce = old_ce; - stmt->fetch.cls.ctor_args = old_ctor_args; - stmt->fetch.cls.fci.param_count = old_arg_count; -} -break; - - default: -break; - } - for (idx = 0; i < stmt->column_count; i++, idx++) { zval *val; MAKE_STD_ZVAL(val); @@ -1193,6 +1167,27 @@ } switch (how) { + case PDO_FETCH_CLASS: +if (ce->constructor && !(flags & (PDO_FETCH_PROPS_LATE | PDO_FETCH_SERIALIZE))) { + stmt->fetch.cls.fci.object_ptr = return_value; + stmt->fetch.cls.fcc.object_ptr = return_value; + if (zend_call_function(&stmt->fetch.cls.fci, &stmt->fetch.cls.fcc TSRMLS_CC) == FAILURE) { + pdo_raise_impl_error(stmt->dbh, stmt, "HY000", "could not call class constructor" TSRMLS_CC); + return 0; + } else { + if (stmt->fetch.cls.retval_ptr) { + zval_ptr_dtor(&stmt->fetch.cls.retval_ptr); + } + } +} +if (flags & PDO_FETCH_CLASSTYPE) { + do_fetch_opt_finish(stmt, 0 TSRMLS_CC); + stmt->fetch.cls.ce = old_ce; + stmt->fetch.cls.ctor_args = old_ctor_args; + stmt->fetch.cls.fci.param_count = old_arg_count; +} +break; + case PDO_FETCH_FUNC: stmt->fetch.func.fci.param_count = idx; stmt->fetch.func.fci.retval_ptr_ptr = &retval; Modified: php/php-src/branches/PHP_5_3/ext/pdo/tests/pdo_005.phpt === --- php/php-src/branches/PHP_5_3/ext/pdo/tests/pdo_005.phpt 2010-02-11 22:13:22 UTC (rev 294902) +++ php/php-src/branches/PHP_5_3/ext/pdo/tests/pdo_005.phpt 2010-02-11 22:14:06 UTC (rev 294903) @@ -34,7 +34,7 @@ public function __construct(&$row) { - echo __METHOD__ . "($row)\n"; + echo __METHOD__ . "($row,{$this->id})\n"; $this->row = $row++; } } @@ -108,9 +108,9 @@ string(2) "CC" } } -TestDerived::__construct(0) -TestDerived::__construct(1) -TestDerived::__construct(2) +TestDerived::__construct(0,1) +TestDerived::__construct(1,2) +TestDerived::__construct(2,3) array(3) { [0]=> object(TestDerived)#%d (5) { @@ -151,4 +151,4 @@ ["val2"]=> string(2) "CC" } -} +} \ No newline at end of file Modified: php/php-src/branches/PHP_5_3/ext/pdo_mysql/tests/pdo_mysql_stmt_fetchobject.phpt === --- php/php-src/branches/PHP_5_3/ext/pdo_mysql/tests/pdo_mysql_stmt_fetchobject.phpt 2010-02-11 22:13:22 UTC (rev 294902) +++ php/php-src/branches/PHP_5_3/ext/pdo_mysql/tests/pdo_mysql_stmt_fetchobject.phpt 2010-02-11 22:14:06 UTC (rev 294903) @@ -71,21 +71,21 @@ MySQLPDOTest::dropTestTable(); ?> --EXPECTF-- -myclass::__construct(0, 1): 0 / 0 myclass::__set(id, -'1'-) 1 myclass::__set(, -''-) 2 myclass::__set(null, -NULL-) 3 myclass::__set(, -''-) 4 -myclass::__construct(1, 2): 4 / 0 +myclass::__construct(0, 1): 4 / 4 myclass::__set(id, -'2'-) 1 myclass::__set(, -''-) 2 myclass::__set(null, -NULL-) 3 myclass::__set(, -''-) 4 -myclass::__construct(2, 3): 8 / 0 +myclass::__construct(1, 2): 8 / 4 myclass::__set(id, -'3'-) 1 myclass::__set(, -''-) 2 myclass::__set(null, -NULL-) 3 myclass::__se
[PHP-CVS] svn: /php/php-src/ branches/PHP_5_3/ext/pdo/pdo_stmt.c branches/PHP_5_3/ext/pdo_sqlite/tests/pdo_fetch_func_001.phpt trunk/ext/pdo/pdo_stmt.c trunk/ext/pdo_sqlite/tests/pdo_fetch_func_001.ph
felipe Mon, 14 Dec 2009 21:44:56 + Revision: http://svn.php.net/viewvc?view=revision&revision=292143 Log: - Fixed memory leak when E_STRICT message is getted Changed paths: U php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c A php/php-src/branches/PHP_5_3/ext/pdo_sqlite/tests/pdo_fetch_func_001.phpt U php/php-src/trunk/ext/pdo/pdo_stmt.c A php/php-src/trunk/ext/pdo_sqlite/tests/pdo_fetch_func_001.phpt Modified: php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c === --- php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c 2009-12-14 21:29:08 UTC (rev 292142) +++ php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c 2009-12-14 21:44:56 UTC (rev 292143) @@ -795,6 +795,10 @@ } return 0; } + if (is_callable_error) { + /* Possible E_STRICT error message */ + efree(is_callable_error); + } fci->param_count = num_args; /* probably less */ fci->params = safe_emalloc(sizeof(zval**), num_args, 0); Added: php/php-src/branches/PHP_5_3/ext/pdo_sqlite/tests/pdo_fetch_func_001.phpt === --- php/php-src/branches/PHP_5_3/ext/pdo_sqlite/tests/pdo_fetch_func_001.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/pdo_sqlite/tests/pdo_fetch_func_001.phpt 2009-12-14 21:44:56 UTC (rev 292143) @@ -0,0 +1,126 @@ +--TEST-- +Testing several callbacks using PDO::FETCH_FUNC +--FILE-- +exec('CREATE TABLE testing (id INTEGER , name VARCHAR)'); +$db->exec('INSERT INTO testing VALUES(1, "php")'); +$db->exec('INSERT INTO testing VALUES(2, "")'); + +$st = $db->query('SELECT * FROM testing'); +$st->fetchAll(PDO::FETCH_FUNC, function($x, $y) use ($st) { var_dump($st); print "data: $x, $y\n"; }); + +$st = $db->query('SELECT name FROM testing'); +var_dump($st->fetchAll(PDO::FETCH_FUNC, 'strtoupper')); + +$st = $db->query('SELECT * FROM testing'); +var_dump($st->fetchAll(PDO::FETCH_FUNC, 'nothing')); + +$st = $db->query('SELECT * FROM testing'); +var_dump($st->fetchAll(PDO::FETCH_FUNC, '')); + +$st = $db->query('SELECT * FROM testing'); +var_dump($st->fetchAll(PDO::FETCH_FUNC, NULL)); + +$st = $db->query('SELECT * FROM testing'); +var_dump($st->fetchAll(PDO::FETCH_FUNC, 1)); + +$st = $db->query('SELECT * FROM testing'); +var_dump($st->fetchAll(PDO::FETCH_FUNC, array('self', 'foo'))); + +class foo { + public function foo($x) { + return "--- $x ---"; + } +} +class bar extends foo { + public function __construct($db) { + $st = $db->query('SELECT * FROM testing'); + var_dump($st->fetchAll(PDO::FETCH_FUNC, array($this, 'parent::foo'))); + } + + static public function test($x, $y) { + return $x .'---'. $y; + } + + private function test2($x, $y) { + return $x; + } + + public function test3($x, $y) { + return $x .'==='. $y; + } +} + +new bar($db); + +$st = $db->query('SELECT * FROM testing'); +var_dump($st->fetchAll(PDO::FETCH_FUNC, array('bar', 'test'))); + +$st = $db->query('SELECT * FROM testing'); +var_dump($st->fetchAll(PDO::FETCH_FUNC, array('bar', 'test2'))); + +$st = $db->query('SELECT * FROM testing'); +var_dump($st->fetchAll(PDO::FETCH_FUNC, array('bar', 'test3'))); + +$st = $db->query('SELECT * FROM testing'); +var_dump($st->fetchAll(PDO::FETCH_FUNC, array('bar', 'inexistent'))); + +?> +--EXPECTF-- +object(PDOStatement)#%d (1) { + [%u|b%"queryString"]=> + %string|unicode%(21) "SELECT * FROM testing" +} +data: 1, php +object(PDOStatement)#%d (1) { + [%u|b%"queryString"]=> + %string|unicode%(21) "SELECT * FROM testing" +} +data: 2, +array(2) { + [0]=> + %string|unicode%(3) "PHP" + [1]=> + %string|unicode%(0) "" +} + +Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: function 'nothing' not found or invalid function name in %s on line %d +bool(false) + +Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: function '' not found or invalid function name in %s on line %d +bool(false) + +Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: no array or string given in %s on line %d +bool(false) + +Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: no array or string given in %s on line %d +bool(false) + +Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: cannot access self:: when no class scope is active in %s on line %d +bool(false) +array(2) { + [0]=> + %string|unicode%(9) "--- 1 ---" + [1]=> + %string|unicode%(9) "--- 2 ---" +} +array(2) { + [0]=> + %string|unicode%(7) "1---php" + [1]=> + %string|unicode%(4) "2---" +} + +Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: cannot access private method bar::test2() in %s on line %d +bool(false) +array(2) { + [0]=> + %string|unicode%(7) "1===php" + [1]=> + %string|unicode%(4) "2===" +} + +Warning: PDOStatement::fetchAll(): SQLSTATE[HY000]: General error: class 'bar' does not have a method 'inexistent' in %s on line %d +bool(false) Property changes on: php/php-src/branches/
[PHP-CVS] svn: php/php-src/branches/PHP_5_3/ext/pdo/ pdo_stmt.c
felipe Thu, 16 Jul 2009 00:59:34 + URL: http://svn.php.net/viewvc?view=revision&revision=284163 Changed paths: U php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c Log: - Removed trailing zeros on double to string conversion (noticed on #48924) Modified: php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c === --- php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c 2009-07-16 00:56:35 UTC (rev 284162) +++ php/php-src/branches/PHP_5_3/ext/pdo/pdo_stmt.c 2009-07-16 00:59:34 UTC (rev 284163) @@ -317,7 +317,7 @@ if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_STR && param->max_value_len <= 0 && ! ZVAL_IS_NULL(param->parameter)) { if (Z_TYPE_P(param->parameter) == IS_DOUBLE) { char *p; - int len = spprintf(&p, 0, "%F", Z_DVAL_P(param->parameter)); + int len = spprintf(&p, 0, "%.*H", (int) EG(precision), Z_DVAL_P(param->parameter)); ZVAL_STRINGL(param->parameter, p, len, 0); } else { convert_to_string(param->parameter); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php