]> granicus.if.org Git - php/commitdiff
Add $dbh->exec() method.
authorWez Furlong <wez@php.net>
Wed, 19 May 2004 13:43:07 +0000 (13:43 +0000)
committerWez Furlong <wez@php.net>
Wed, 19 May 2004 13:43:07 +0000 (13:43 +0000)
Rename $dbh->beginWork() to $dbh->beginTransaction().

ext/pdo/pdo_dbh.c
ext/pdo/php_pdo_driver.h

index 0f0ce5f8cff0cdcb9b8c2d9fdf7c2baa3be6e8ff..01d1c3baf7845d74cf83fec9ba6c6b703c3f4cbf 100755 (executable)
@@ -157,9 +157,9 @@ static PHP_METHOD(PDO, prepare)
        RETURN_FALSE;
 }
 
-/* {{{ proto bool PDO::beginWork()
+/* {{{ proto bool PDO::beginTransaction()
    Initiates a transaction */
-static PHP_METHOD(PDO, beginWork)
+static PHP_METHOD(PDO, beginTransaction)
 {
        pdo_dbh_t *dbh = zend_object_store_get_object(getThis() TSRMLS_CC);
 
@@ -257,13 +257,41 @@ fail:
 }
 /* }}} */
 
+/* {{{ proto bool PDO::exec(string query)
+   Execute a query that does not return a row set */
+static PHP_METHOD(PDO, exec)
+{
+       pdo_dbh_t *dbh = zend_object_store_get_object(getThis() TSRMLS_CC);
+       pdo_stmt_t *stmt;
+       char *statement;
+       long statement_len;
+       int rows;
+
+       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &statement, &statement_len)) {
+               RETURN_FALSE;
+       }
+
+       if (!statement_len) {
+               RETURN_FALSE;
+       }
+
+       rows = dbh->methods->doer(dbh, statement, statement_len TSRMLS_CC);
+
+       if (rows >= 0) {
+               RETURN_LONG(rows);
+       }
+
+       RETURN_FALSE;
+}
+/* }}} */
 
 function_entry pdo_dbh_functions[] = {
        PHP_ME(PDO, prepare,            NULL,                                   ZEND_ACC_PUBLIC)
-       PHP_ME(PDO, beginWork,          NULL,                                   ZEND_ACC_PUBLIC)
+       PHP_ME(PDO, beginTransaction,NULL,                                      ZEND_ACC_PUBLIC)
        PHP_ME(PDO, commit,                     NULL,                                   ZEND_ACC_PUBLIC)
        PHP_ME(PDO, rollBack,           NULL,                                   ZEND_ACC_PUBLIC)
        PHP_ME(PDO, setAttribute,       NULL,                                   ZEND_ACC_PUBLIC)
+       PHP_ME(PDO, exec,                       NULL,                                   ZEND_ACC_PUBLIC)
 
        {NULL, NULL, NULL}
 };
index a7de8d7c827edf5cb454d6ca9124c8718214f54b..59a445b46e5f271da6a5cd244c351764c3a512fb 100755 (executable)
@@ -99,7 +99,7 @@ typedef int (*pdo_dbh_close_func)(pdo_dbh_t *dbh TSRMLS_DC);
 typedef int (*pdo_dbh_prepare_func)(pdo_dbh_t *dbh, const char *sql, long sql_len, pdo_stmt_t *stmt, long options, zval *driver_options TSRMLS_DC);
 
 /* execute a statement (that does not return a result set) */
-typedef int (*pdo_dbh_do_func)(pdo_dbh_t *dbh, const char *sql TSRMLS_DC);
+typedef int (*pdo_dbh_do_func)(pdo_dbh_t *dbh, const char *sql, int sql_len TSRMLS_DC);
 
 /* quote a string */
 typedef int (*pdo_dbh_quote_func)(pdo_dbh_t *dbh, const char *unquoted, int unquotedlen, char **quoted, int *quotedlen TSRMLS_DC);