summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2004-05-13 14:54:55 +0000
committerStanislav Malyshev <stas@php.net>2004-05-13 14:54:55 +0000
commit49a1413f504e503031c11e77b9b64a55f2213932 (patch)
treea6b98a3a111e87439f9edec0aa181eda3ef4bdfa
parent395478d363bd4b7eb4f5ba3f057279d04722b7ba (diff)
downloadphp-git-49a1413f504e503031c11e77b9b64a55f2213932.tar.gz
add sqlite_exec - now to the right tag
-rw-r--r--ext/sqlite/php_sqlite.h1
-rw-r--r--ext/sqlite/sqlite.c32
2 files changed, 33 insertions, 0 deletions
diff --git a/ext/sqlite/php_sqlite.h b/ext/sqlite/php_sqlite.h
index 1d38a3e21c..4735133320 100644
--- a/ext/sqlite/php_sqlite.h
+++ b/ext/sqlite/php_sqlite.h
@@ -46,6 +46,7 @@ PHP_FUNCTION(sqlite_open);
PHP_FUNCTION(sqlite_popen);
PHP_FUNCTION(sqlite_close);
PHP_FUNCTION(sqlite_query);
+PHP_FUNCTION(sqlite_exec);
PHP_FUNCTION(sqlite_unbuffered_query);
PHP_FUNCTION(sqlite_array_query);
PHP_FUNCTION(sqlite_single_query);
diff --git a/ext/sqlite/sqlite.c b/ext/sqlite/sqlite.c
index 18666e2906..2f87ed90c0 100644
--- a/ext/sqlite/sqlite.c
+++ b/ext/sqlite/sqlite.c
@@ -126,6 +126,7 @@ function_entry sqlite_functions[] = {
PHP_FE(sqlite_popen, arg3_force_ref)
PHP_FE(sqlite_close, NULL)
PHP_FE(sqlite_query, NULL)
+ PHP_FE(sqlite_exec, NULL)
PHP_FE(sqlite_array_query, NULL)
PHP_FE(sqlite_single_query, NULL)
PHP_FE(sqlite_fetch_array, NULL)
@@ -1111,6 +1112,37 @@ PHP_FUNCTION(sqlite_query)
}
/* }}} */
+/* {{{ proto boolean sqlite_exec(string query, resource db)
+ Executes a result-less query against a given database */
+PHP_FUNCTION(sqlite_exec)
+{
+ zval *zdb;
+ struct php_sqlite_db *db;
+ char *sql;
+ long sql_len;
+ char *errtext = NULL;
+
+ 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)) {
+ return;
+ }
+ DB_FROM_ZVAL(db, &zdb);
+
+ PHP_SQLITE_EMPTY_QUERY;
+
+ db->last_err_code = sqlite_exec(db->db, sql, NULL, NULL, &errtext);
+
+ if (db->last_err_code != SQLITE_OK) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", errtext);
+ sqlite_freemem(errtext);
+ RETURN_FALSE;
+ }
+
+ RETURN_TRUE;
+}
+/* }}} */
+
/* {{{ php_sqlite_fetch_array */
static void php_sqlite_fetch_array(struct php_sqlite_result *res, int mode, zend_bool decode_binary, int move_next, zval *return_value TSRMLS_DC)
{