diff options
Diffstat (limited to 'ext/sqlite/sqlite.c')
-rw-r--r-- | ext/sqlite/sqlite.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/ext/sqlite/sqlite.c b/ext/sqlite/sqlite.c index 3d20f3699d..60f3bb7790 100644 --- a/ext/sqlite/sqlite.c +++ b/ext/sqlite/sqlite.c @@ -112,6 +112,12 @@ PHP_INI_END() PG(suppress_errors) = 0; \ EG(exception) = zend_throw_exception(sqlite_ce_exception, message, 0 TSRMLS_CC); +#define PHP_SQLITE_EMPTY_QUERY \ + if (!sql_len) { \ + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot execute empty query."); \ + RETURN_FALSE; \ + } + struct php_sqlite_result { struct php_sqlite_db *db; sqlite_vm *vm; @@ -1538,6 +1544,8 @@ PHP_FUNCTION(sqlite_unbuffered_query) DB_FROM_ZVAL(db, &zdb); } + PHP_SQLITE_EMPTY_QUERY; + /* avoid doing work if we can */ if (!return_value_used) { db->last_err_code = sqlite_exec(db->db, sql, NULL, NULL, &errtext); @@ -1645,6 +1653,8 @@ PHP_FUNCTION(sqlite_query) DB_FROM_ZVAL(db, &zdb); } + PHP_SQLITE_EMPTY_QUERY; + /* avoid doing work if we can */ if (!return_value_used) { db->last_err_code = sqlite_exec(db->db, sql, NULL, NULL, &errtext); @@ -2004,6 +2014,8 @@ PHP_FUNCTION(sqlite_array_query) DB_FROM_ZVAL(db, &zdb); } + PHP_SQLITE_EMPTY_QUERY; + /* avoid doing work if we can */ if (!return_value_used) { db->last_err_code = sqlite_exec(db->db, sql, NULL, NULL, &errtext); @@ -2118,6 +2130,8 @@ PHP_FUNCTION(sqlite_single_query) DB_FROM_ZVAL(db, &zdb); } + PHP_SQLITE_EMPTY_QUERY; + /* avoid doing work if we can */ if (!return_value_used) { db->last_err_code = sqlite_exec(db->db, sql, NULL, NULL, &errtext); |