diff options
| -rw-r--r-- | ext/sqlite3/sqlite3.c | 3 | ||||
| -rw-r--r-- | ext/sqlite3/tests/sqlite3_29_createfunction.phpt | 29 |
2 files changed, 32 insertions, 0 deletions
diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c index d444404c45..4519f40248 100644 --- a/ext/sqlite3/sqlite3.c +++ b/ext/sqlite3/sqlite3.c @@ -817,6 +817,7 @@ PHP_METHOD(sqlite3, createFunction) MAKE_STD_ZVAL(func->func); *(func->func) = *callback_func; zval_copy_ctor(func->func); + INIT_PZVAL(func->func); func->argc = sql_func_num_args; func->next = db_obj->funcs; @@ -876,10 +877,12 @@ PHP_METHOD(sqlite3, createAggregate) MAKE_STD_ZVAL(func->step); *(func->step) = *step_callback; zval_copy_ctor(func->step); + INIT_PZVAL(func->step); MAKE_STD_ZVAL(func->fini); *(func->fini) = *fini_callback; zval_copy_ctor(func->fini); + INIT_PZVAL(func->fini); func->argc = sql_func_num_args; func->next = db_obj->funcs; diff --git a/ext/sqlite3/tests/sqlite3_29_createfunction.phpt b/ext/sqlite3/tests/sqlite3_29_createfunction.phpt new file mode 100644 index 0000000000..9448b30ade --- /dev/null +++ b/ext/sqlite3/tests/sqlite3_29_createfunction.phpt @@ -0,0 +1,29 @@ +--TEST-- +SQLite3::createFunction - Basic test +--SKIPIF-- +<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?> +--FILE-- +<?php + +require_once(dirname(__FILE__) . '/new_db.inc'); + +$func = 'strtoupper'; +var_dump($db->createfunction($func, $func)); +var_dump($db->querySingle('SELECT strtoupper("test")')); + +$func2 = 'strtolower'; +var_dump($db->createfunction($func2, $func2)); +var_dump($db->querySingle('SELECT strtolower("TEST")')); + +var_dump($db->createfunction($func, $func2)); +var_dump($db->querySingle('SELECT strtoupper("tEst")')); + + +?> +--EXPECTF-- +bool(true) +%string|unicode%(4) "TEST" +bool(true) +%string|unicode%(4) "test" +bool(true) +%string|unicode%(4) "test" |
