summaryrefslogtreecommitdiff
path: root/ext/sqlite/sqlite.c
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2003-04-30 15:18:59 +0000
committerMarcus Boerger <helly@php.net>2003-04-30 15:18:59 +0000
commit4ad3ecc758e4a29bddb3f45b3b518dd8ec521cd7 (patch)
treee2900e06d72c021fe0d316b7e483214caaeba930 /ext/sqlite/sqlite.c
parent6fc4f3a2ef9bcf9539541368e34607ce1826a727 (diff)
downloadphp-git-4ad3ecc758e4a29bddb3f45b3b518dd8ec521cd7.tar.gz
Allow to set result_type default for each query
Diffstat (limited to 'ext/sqlite/sqlite.c')
-rw-r--r--ext/sqlite/sqlite.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/ext/sqlite/sqlite.c b/ext/sqlite/sqlite.c
index f154a03726..8957aa6c47 100644
--- a/ext/sqlite/sqlite.c
+++ b/ext/sqlite/sqlite.c
@@ -85,6 +85,7 @@ struct php_sqlite_result {
char **col_names;
int alloc_rows;
char **table;
+ int mode;
};
struct php_sqlite_db {
@@ -898,8 +899,9 @@ PHP_FUNCTION(sqlite_unbuffered_query)
int ret;
char *errtext = NULL;
const char *tail;
+ int mode;
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sr", &sql, &sql_len, &zdb)) {
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sr|l", &sql, &sql_len, &zdb, &mode)) {
return;
}
@@ -917,6 +919,7 @@ PHP_FUNCTION(sqlite_unbuffered_query)
}
memset(&res, 0, sizeof(res));
+ res.mode = mode;
ret = sqlite_compile(db->db, sql, &tail, &res.vm, &errtext);
db->last_err_code = ret;
@@ -959,10 +962,11 @@ PHP_FUNCTION(sqlite_query)
int ret;
char *errtext = NULL;
const char *tail;
+ int mode = PHPSQLITE_BOTH;
if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
- ZEND_NUM_ARGS() TSRMLS_CC, "sr", &sql, &sql_len, &zdb) &&
- FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &zdb, &sql, &sql_len)) {
+ ZEND_NUM_ARGS() TSRMLS_CC, "sr|l", &sql, &sql_len, &zdb, &mode) &&
+ FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs|l", &zdb, &sql, &sql_len, &mode)) {
return;
}
@@ -981,6 +985,7 @@ PHP_FUNCTION(sqlite_query)
memset(&res, 0, sizeof(res));
res.buffered = 1;
+ res.mode = mode;
ret = sqlite_compile(db->db, sql, &tail, &res.vm, &errtext);
db->last_err_code = ret;
@@ -1016,7 +1021,7 @@ PHP_FUNCTION(sqlite_fetch_array)
{
zval *zres;
struct php_sqlite_result *res;
- int mode = PHPSQLITE_BOTH;
+ int mode;
int j;
const char **rowdata, **colnames;
zend_bool decode_binary = 1;
@@ -1027,6 +1032,10 @@ PHP_FUNCTION(sqlite_fetch_array)
ZEND_FETCH_RESOURCE(res, struct php_sqlite_result *, &zres, -1, "sqlite result", le_sqlite_result);
+ if (ZEND_NUM_ARGS() < 2) {
+ mode = res->mode;
+ }
+
/* check range of the row */
if (res->curr_row >= res->nrows) {
/* no more */