diff options
| author | Ondřej Surý <ondrej@sury.org> | 2010-01-07 13:31:53 +0100 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2010-01-07 13:31:53 +0100 |
| commit | 0fab6db7cac8d2be99579dd049f812a8ff98e74f (patch) | |
| tree | 91f01b0d06916c78262404096bfd466b8e95e5b5 /ext/pdo | |
| parent | d3a8757891280dc6650ca7eead67830c794b0e7b (diff) | |
| download | php-0fab6db7cac8d2be99579dd049f812a8ff98e74f.tar.gz | |
Imported Upstream version 5.3.1upstream/5.3.1
Diffstat (limited to 'ext/pdo')
| -rwxr-xr-x | ext/pdo/README | 2 | ||||
| -rwxr-xr-x | ext/pdo/TODO | 2 | ||||
| -rwxr-xr-x | ext/pdo/config.m4 | 2 | ||||
| -rwxr-xr-x | ext/pdo/config.w32 | 2 | ||||
| -rwxr-xr-x | ext/pdo/pdo.c | 2 | ||||
| -rwxr-xr-x | ext/pdo/pdo_dbh.c | 4 | ||||
| -rw-r--r-- | ext/pdo/pdo_sql_parser.c | 2 | ||||
| -rw-r--r-- | ext/pdo/pdo_sql_parser.c.orig | 2 | ||||
| -rw-r--r-- | ext/pdo/pdo_sql_parser.re | 2 | ||||
| -rw-r--r-- | ext/pdo/pdo_sqlstate.c | 2 | ||||
| -rwxr-xr-x | ext/pdo/pdo_stmt.c | 68 | ||||
| -rwxr-xr-x | ext/pdo/php_pdo.h | 2 | ||||
| -rwxr-xr-x | ext/pdo/php_pdo_driver.h | 2 | ||||
| -rwxr-xr-x | ext/pdo/php_pdo_int.h | 2 | ||||
| -rwxr-xr-x | ext/pdo/tests/pdo.inc | 20 | ||||
| -rw-r--r-- | ext/pdo/tests/pdo_036.phpt | 21 |
16 files changed, 83 insertions, 54 deletions
diff --git a/ext/pdo/README b/ext/pdo/README index 9431b6147..16a82fc15 100755 --- a/ext/pdo/README +++ b/ext/pdo/README @@ -1,4 +1,4 @@ -$Id: README,v 1.3 2005/02/09 23:34:53 wez Exp $ +$Id: README 242949 2007-09-26 15:44:16Z cvs2svn $ PHP Data Objects ================ diff --git a/ext/pdo/TODO b/ext/pdo/TODO index 133b2c8fb..762d726f5 100755 --- a/ext/pdo/TODO +++ b/ext/pdo/TODO @@ -1,4 +1,4 @@ -$Id: TODO,v 1.6.2.2.2.1 2007/07/25 22:26:14 iliaa Exp $ +$Id: TODO 240335 2007-07-25 22:26:14Z iliaa $ Roadmap for PDO diff --git a/ext/pdo/config.m4 b/ext/pdo/config.m4 index 262697d08..ef9b1654f 100755 --- a/ext/pdo/config.m4 +++ b/ext/pdo/config.m4 @@ -1,4 +1,4 @@ -dnl $Id: config.m4,v 1.15.2.3.2.1.2.1 2008/07/25 13:46:23 jani Exp $ +dnl $Id: config.m4 263549 2008-07-25 13:46:24Z jani $ dnl config.m4 for extension pdo dnl vim:se ts=2 sw=2 et: diff --git a/ext/pdo/config.w32 b/ext/pdo/config.w32 index d34b8c3e3..e8f864bca 100755 --- a/ext/pdo/config.w32 +++ b/ext/pdo/config.w32 @@ -1,4 +1,4 @@ -// $Id: config.w32,v 1.5.2.2.4.1 2008/07/24 16:05:34 pajoye Exp $ +// $Id: config.w32 263427 2008-07-24 16:05:34Z pajoye $ // vim:ft=javascript ARG_ENABLE("pdo", "Enable PHP Data Objects support", "no"); diff --git a/ext/pdo/pdo.c b/ext/pdo/pdo.c index c111d21aa..8b3734099 100755 --- a/ext/pdo/pdo.c +++ b/ext/pdo/pdo.c @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pdo.c,v 1.57.2.17.2.9.2.8 2008/12/31 11:15:40 sebastian Exp $ */ +/* $Id: pdo.c 284394 2009-07-19 22:46:03Z felipe $ */ #ifdef HAVE_CONFIG_H #include "config.h" diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index ed6ddcf1c..c85a59308 100755 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pdo_dbh.c,v 1.82.2.31.2.17.2.25 2009/05/02 01:37:33 kalle Exp $ */ +/* $Id: pdo_dbh.c 289775 2009-10-19 21:43:34Z johannes $ */ /* The PDO Database Handle Class */ @@ -110,7 +110,7 @@ void pdo_handle_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt TSRMLS_DC) /* {{{ */ char *message = NULL; zval *info = NULL; - if (dbh->error_mode == PDO_ERRMODE_SILENT) { + if (dbh == NULL || dbh->error_mode == PDO_ERRMODE_SILENT) { return; } diff --git a/ext/pdo/pdo_sql_parser.c b/ext/pdo/pdo_sql_parser.c index 358bc3983..072d9e69b 100644 --- a/ext/pdo/pdo_sql_parser.c +++ b/ext/pdo/pdo_sql_parser.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.12.2.8 2008/12/31 11:15:40 sebastian Exp $ */ +/* $Id: pdo_sql_parser.c 272370 2008-12-31 11:15:49Z sebastian $ */ #include "php.h" #include "php_pdo_driver.h" diff --git a/ext/pdo/pdo_sql_parser.c.orig b/ext/pdo/pdo_sql_parser.c.orig index 3e6883b33..1d3eaa6fc 100644 --- a/ext/pdo/pdo_sql_parser.c.orig +++ b/ext/pdo/pdo_sql_parser.c.orig @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.12.2.8 2008/12/31 11:15:40 sebastian Exp $ */ +/* $Id: pdo_sql_parser.c 272370 2008-12-31 11:15:49Z sebastian $ */ #include "php.h" #include "php_pdo_driver.h" diff --git a/ext/pdo/pdo_sql_parser.re b/ext/pdo/pdo_sql_parser.re index a7459033b..4b92183c1 100644 --- a/ext/pdo/pdo_sql_parser.re +++ b/ext/pdo/pdo_sql_parser.re @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pdo_sql_parser.re,v 1.28.2.4.2.9.2.8 2008/12/31 11:13:54 sebastian Exp $ */ +/* $Id: pdo_sql_parser.re 272369 2008-12-31 11:13:54Z sebastian $ */ #include "php.h" #include "php_pdo_driver.h" diff --git a/ext/pdo/pdo_sqlstate.c b/ext/pdo/pdo_sqlstate.c index 2fe789986..de44331d1 100644 --- a/ext/pdo/pdo_sqlstate.c +++ b/ext/pdo/pdo_sqlstate.c @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pdo_sqlstate.c,v 1.7.2.1.2.1.2.3 2008/12/31 11:15:40 sebastian Exp $ */ +/* $Id: pdo_sqlstate.c 272370 2008-12-31 11:15:49Z sebastian $ */ #ifdef HAVE_CONFIG_H #include "config.h" diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index 9291c02dc..18a3bd84b 100755 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pdo_stmt.c,v 1.118.2.38.2.24.2.46 2009/04/23 13:26:09 mbeccati Exp $ */ +/* $Id: pdo_stmt.c 289775 2009-10-19 21:43:34Z johannes $ */ /* The PDO Statement Handle Class */ @@ -317,7 +317,7 @@ static int really_register_bound_param(struct pdo_bound_param_data *param, pdo_s 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); @@ -2663,26 +2663,28 @@ static zval *row_prop_or_dim_read(zval *object, zval *member, int type TSRMLS_DC MAKE_STD_ZVAL(return_value); RETVAL_NULL(); - - if (Z_TYPE_P(member) == IS_LONG) { - if (Z_LVAL_P(member) >= 0 && Z_LVAL_P(member) < stmt->column_count) { - fetch_value(stmt, return_value, Z_LVAL_P(member), NULL TSRMLS_CC); - } - } 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) { - fetch_value(stmt, return_value, colno, NULL TSRMLS_CC); - Z_SET_REFCOUNT_P(return_value, 0); - Z_UNSET_ISREF_P(return_value); - return return_value; + + if (stmt) { + if (Z_TYPE_P(member) == IS_LONG) { + if (Z_LVAL_P(member) >= 0 && Z_LVAL_P(member) < stmt->column_count) { + fetch_value(stmt, return_value, Z_LVAL_P(member), NULL TSRMLS_CC); + } + } 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) { + fetch_value(stmt, return_value, colno, NULL TSRMLS_CC); + Z_SET_REFCOUNT_P(return_value, 0); + Z_UNSET_ISREF_P(return_value); + return return_value; + } + } + 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); } - } - 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); } } @@ -2702,16 +2704,18 @@ static int row_prop_or_dim_exists(zval *object, zval *member, int check_empty TS pdo_stmt_t * stmt = (pdo_stmt_t *) zend_object_store_get_object(object TSRMLS_CC); int colno = -1; - if (Z_TYPE_P(member) == IS_LONG) { - return Z_LVAL_P(member) >= 0 && Z_LVAL_P(member) < stmt->column_count; - } else { - convert_to_string(member); + if (stmt) { + if (Z_TYPE_P(member) == IS_LONG) { + return Z_LVAL_P(member) >= 0 && Z_LVAL_P(member) < 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; + } } } } @@ -2729,6 +2733,10 @@ static HashTable *row_get_properties(zval *object TSRMLS_DC) pdo_stmt_t * stmt = (pdo_stmt_t *) zend_object_store_get_object(object TSRMLS_CC); int i; + if (stmt == NULL) { + return NULL; + } + for (i = 0; i < stmt->column_count; i++) { zval *val; MAKE_STD_ZVAL(val); diff --git a/ext/pdo/php_pdo.h b/ext/pdo/php_pdo.h index 5b3d57e37..6d6658196 100755 --- a/ext/pdo/php_pdo.h +++ b/ext/pdo/php_pdo.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_pdo.h,v 1.7.2.5.2.3.2.3 2008/12/31 11:15:40 sebastian Exp $ */ +/* $Id: php_pdo.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef PHP_PDO_H #define PHP_PDO_H diff --git a/ext/pdo/php_pdo_driver.h b/ext/pdo/php_pdo_driver.h index 9a8b721e9..e8aa505f9 100755 --- a/ext/pdo/php_pdo_driver.h +++ b/ext/pdo/php_pdo_driver.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_pdo_driver.h,v 1.66.2.11.2.6.2.5 2008/12/31 11:15:40 sebastian Exp $ */ +/* $Id: php_pdo_driver.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef PHP_PDO_DRIVER_H #define PHP_PDO_DRIVER_H diff --git a/ext/pdo/php_pdo_int.h b/ext/pdo/php_pdo_int.h index f25c409ce..3e301b522 100755 --- a/ext/pdo/php_pdo_int.h +++ b/ext/pdo/php_pdo_int.h @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_pdo_int.h,v 1.17.2.6.2.2.2.3 2008/12/31 11:15:41 sebastian Exp $ */ +/* $Id: php_pdo_int.h 272370 2008-12-31 11:15:49Z sebastian $ */ /* Stuff private to the PDO extension and not for consumption by PDO drivers * */ diff --git a/ext/pdo/tests/pdo.inc b/ext/pdo/tests/pdo.inc index 9bf6d5974..8089236bb 100755 --- a/ext/pdo/tests/pdo.inc +++ b/ext/pdo/tests/pdo.inc @@ -1,10 +1,10 @@ -<?php
-
-function set_sql($name, $query)
-{
- if (empty($GLOBALS['SQL'][$name]))
- {
- $GLOBALS['SQL'][$name] = $query;
- }
-}
-?>
+<?php + +function set_sql($name, $query) +{ + if (empty($GLOBALS['SQL'][$name])) + { + $GLOBALS['SQL'][$name] = $query; + } +} +?> diff --git a/ext/pdo/tests/pdo_036.phpt b/ext/pdo/tests/pdo_036.phpt new file mode 100644 index 000000000..6bd38cb06 --- /dev/null +++ b/ext/pdo/tests/pdo_036.phpt @@ -0,0 +1,21 @@ +--TEST-- +Testing PDORow and PDOStatement instances with Reflection +--FILE-- +<?php + +$instance = new reflectionclass('pdorow'); +$x = $instance->newInstance(); +var_dump($x); + +$instance = new reflectionclass('pdostatement'); +$x = $instance->newInstance(); +var_dump($x); + +?> +--EXPECTF-- +object(PDORow)#%d (0) { +} +object(PDOStatement)#%d (1) { + [%u|b%"queryString"]=> + NULL +} |
