wez Mon Jul 18 10:46:55 2005 EDT
Modified files:
/php-src/ext/pdo pdo_stmt.c
Log:
make a start on a debugging function.
http://cvs.php.net/diff.php/php-src/ext/pdo/pdo_stmt.c?r1=1.111&r2=1.112&ty=u
Index: php-src/ext/pdo/pdo_stmt.c
diff -u php-src/ext/pdo/pdo_stmt.c:1.111 php-src/ext/pdo/pdo_stmt.c:1.112
--- php-src/ext/pdo/pdo_stmt.c:1.111 Mon Jul 11 23:19:44 2005
+++ php-src/ext/pdo/pdo_stmt.c Mon Jul 18 10:46:55 2005
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_stmt.c,v 1.111 2005/07/12 03:19:44 wez Exp $ */
+/* $Id: pdo_stmt.c,v 1.112 2005/07/18 14:46:55 wez Exp $ */
/* The PDO Statement Handle Class */
@@ -1776,6 +1776,48 @@
}
/* }}} */
+/* {{{ proto void PDOStatement::debugDumpParams()
+ A utility for internals hackers to debug parameter internals */
+static PHP_METHOD(PDOStatement, debugDumpParams)
+{
+ pdo_stmt_t *stmt = (pdo_stmt_t*)zend_object_store_get_object(getThis()
TSRMLS_CC);
+ php_stream *out = php_stream_open_wrapper("php://output", "w", 0, NULL);
+ HashPosition pos;
+ struct pdo_bound_param_data *param;
+
+ php_stream_printf(out TSRMLS_CC, "SQL: [%d] %.*s\n",
+ stmt->query_stringlen,
+ stmt->query_stringlen, stmt->query_string);
+
+ php_stream_printf(out TSRMLS_CC, "Params: %d\n",
+ stmt->bound_params ? zend_hash_num_elements(stmt->bound_params)
: 0);
+
+ if (stmt->bound_params) {
+ zend_hash_internal_pointer_reset_ex(stmt->bound_params, &pos);
+ while (SUCCESS ==
zend_hash_get_current_data_ex(stmt->bound_params,
+ (void**)¶m, &pos)) {
+ char *str;
+ uint len;
+ ulong num;
+
+ if (zend_hash_get_current_key_ex(stmt->bound_params,
&str, &len, &num, 0, &pos) == HASH_KEY_IS_STRING) {
+ php_stream_printf(out TSRMLS_CC, "Key: Position
#%d:\n", num);
+ } else {
+ 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",
+ param->paramno, param->namelen, param->namelen,
param->name,
+ param->is_param,
+ param->param_type);
+
+ }
+ }
+
+ php_stream_close(out);
+}
+/* }}} */
+
function_entry pdo_dbstmt_functions[] = {
PHP_ME(PDOStatement, execute, NULL,
ZEND_ACC_PUBLIC)
@@ -1795,6 +1837,7 @@
PHP_ME(PDOStatement, setFetchMode, NULL,
ZEND_ACC_PUBLIC)
PHP_ME(PDOStatement, nextRowset, NULL,
ZEND_ACC_PUBLIC)
PHP_ME(PDOStatement, closeCursor, NULL,
ZEND_ACC_PUBLIC)
+ PHP_ME(PDOStatement, debugDumpParams, NULL,
ZEND_ACC_PUBLIC)
{NULL, NULL, NULL}
};
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php