summaryrefslogtreecommitdiff
path: root/ext/sqlite
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sqlite')
-rw-r--r--ext/sqlite/sqlite.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/ext/sqlite/sqlite.c b/ext/sqlite/sqlite.c
index e51100a6d6..b8fa042947 100644
--- a/ext/sqlite/sqlite.c
+++ b/ext/sqlite/sqlite.c
@@ -1569,7 +1569,7 @@ PHP_FUNCTION(sqlite_unbuffered_query)
}
/* }}} */
-/* {{{ proto resource sqlite_fetch_column_types(string table_name, resource db)
+/* {{{ proto resource sqlite_fetch_column_types(string table_name, [, int result_type] resource db)
Return an array of column types from a particular table. */
PHP_FUNCTION(sqlite_fetch_column_types)
{
@@ -1581,10 +1581,10 @@ PHP_FUNCTION(sqlite_fetch_column_types)
zval *object = getThis();
struct php_sqlite_result res;
const char **rowdata, **colnames, *tail;
- int i, ncols;
+ int i, ncols, result_type = PHPSQLITE_ASSOC;
if (object) {
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &tbl, &tbl_len)) {
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &tbl, &tbl_len, &result_type)) {
return;
}
DB_FROM_OBJECT(db, object);
@@ -1627,7 +1627,12 @@ PHP_FUNCTION(sqlite_fetch_column_types)
php_sqlite_strtolower(colname);
}
- add_assoc_string(return_value, colname, colnames[ncols + i] ? (char *)colnames[ncols + i] : "", 1);
+ if (result_type == PHPSQLITE_ASSOC) {
+ add_assoc_string(return_value, colname, colnames[ncols + i] ? (char *)colnames[ncols + i] : "", 1);
+ }
+ if (result_type == PHPSQLITE_NUM) {
+ add_index_string(return_value, i, colnames[ncols + i] ? (char *)colnames[ncols + i] : "", 1);
+ }
}
done: