summaryrefslogtreecommitdiff
path: root/ext/sqlite/sqlite.c
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2003-06-23 19:37:48 +0000
committerIlia Alshanetsky <iliaa@php.net>2003-06-23 19:37:48 +0000
commit28347d74bb8d05d18c4d7de7e716475cbcc62b4e (patch)
treef1cb62eaee4dcafe049242caeee588a6cc755e49 /ext/sqlite/sqlite.c
parent0f971485ac5c1929558a4b10ddd5fe6909abc780 (diff)
downloadphp-git-28347d74bb8d05d18c4d7de7e716475cbcc62b4e.tar.gz
port sqlite_array_query() fix from PHP_4_3
Diffstat (limited to 'ext/sqlite/sqlite.c')
-rw-r--r--ext/sqlite/sqlite.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/ext/sqlite/sqlite.c b/ext/sqlite/sqlite.c
index e83ecb43ee..6d403393ac 100644
--- a/ext/sqlite/sqlite.c
+++ b/ext/sqlite/sqlite.c
@@ -1305,8 +1305,11 @@ void sqlite_query(zval *object, struct php_sqlite_db *db, char *sql, long sql_le
if (ret != SQLITE_OK) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", errtext);
sqlite_freemem(errtext);
-
- RETURN_FALSE;
+ if (return_value) {
+ RETURN_FALSE;
+ } else {
+ return;
+ }
}
if (!rres) {
@@ -1320,7 +1323,11 @@ void sqlite_query(zval *object, struct php_sqlite_db *db, char *sql, long sql_le
/* now the result set is ready for stepping: get first row */
if (php_sqlite_fetch(rres TSRMLS_CC) != SQLITE_OK) {
real_result_dtor(rres TSRMLS_CC);
- RETURN_FALSE;
+ if (return_value) {
+ RETURN_FALSE;
+ } else {
+ return;
+ }
}
rres->curr_row = 0;
@@ -1664,6 +1671,10 @@ PHP_FUNCTION(sqlite_array_query)
rres = (struct php_sqlite_result *)emalloc(sizeof(*rres));
sqlite_query(NULL, db, sql, sql_len, mode, 0, NULL, rres TSRMLS_CC);
+ if (db->last_err_code != SQLITE_OK) {
+ efree(rres);
+ RETURN_FALSE;
+ }
array_init(return_value);