diff options
author | Frank M. Kromann <fmk@php.net> | 2001-07-10 22:34:24 +0000 |
---|---|---|
committer | Frank M. Kromann <fmk@php.net> | 2001-07-10 22:34:24 +0000 |
commit | ad8150b3a9d2e6e9d5dfde655fe42723ec02e0f1 (patch) | |
tree | 6ea836525df8c92a707a91e963bb784d1ac7e9c1 | |
parent | 2bf0a0e5af1615a4af635695de3d18ece0950205 (diff) | |
download | php-git-ad8150b3a9d2e6e9d5dfde655fe42723ec02e0f1.tar.gz |
Fixing return value from fbsql_query after a DELETE FROM with success.
-rw-r--r-- | ext/fbsql/php_fbsql.c | 63 | ||||
-rw-r--r-- | ext/fbsql/php_fbsql.h | 3 |
2 files changed, 65 insertions, 1 deletions
diff --git a/ext/fbsql/php_fbsql.c b/ext/fbsql/php_fbsql.c index 5ab59cbc90..5c53b832ee 100644 --- a/ext/fbsql/php_fbsql.c +++ b/ext/fbsql/php_fbsql.c @@ -108,6 +108,10 @@ void fbcInitialize(); void fbaRelease(); unsigned int fbaCount(); +struct FBCAutoStartInfo { + FBArray* infoLines; +}; + struct PHPFBResult @@ -206,6 +210,9 @@ function_entry fbsql_functions[] = { PHP_FE(fbsql_password, NULL) PHP_FE(fbsql_warnings, NULL) + PHP_FE(fbsql_get_autostart_info, NULL) +// PHP_FE(fbsql_set_autostart_info, NULL) + /* Aliases: */ PHP_FALIAS(fbsql, fbsql_db_query, NULL) @@ -1538,7 +1545,7 @@ static void phpfbQuery(INTERNAL_FUNCTION_PARAMETERS, char* sql, PHPFBLink* link) return_value->type = IS_LONG; if (sR == 1 && md) fbcmdRelease(md); } - else if (tp[0] == 'I' || tp[0] == 'U') + else if (tp[0] == 'I' || tp[0] == 'U' || tp[0] == 'A') { if (tp[0] == 'I') link->insert_id = fbcmdRowIndex(md); return_value->value.lval = 1; @@ -3020,6 +3027,60 @@ PHP_FUNCTION(fbsql_free_result) } /* }}} */ +/* {{{ proto array fbsql_get_autostart_info([resource link_identifier]) + */ +PHP_FUNCTION(fbsql_get_autostart_info) +{ + PHPFBLink* phpLink = NULL; + zval **fbsql_link_index = NULL; + int id; + FBCAutoStartInfo* asInfo; + FBSQLLS_FETCH(); + + switch (ZEND_NUM_ARGS()) { + case 0: + id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU FBSQLLS_CC); + CHECK_LINK(id); + break; + case 1: + if (zend_get_parameters_ex(1, &fbsql_link_index)==FAILURE) { + RETURN_FALSE; + } + id = -1; + break; + default: + WRONG_PARAM_COUNT; + break; + } + ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, id, "FrontBase-Link", le_link, le_plink); + + if (phpLink->execHandler == NULL) { + if (FB_SQL_G(generateWarnings)) php_error(E_WARNING, "No valid Exec handler available for this connection"); + RETURN_FALSE; + } + else { + array_init(return_value); + asInfo = fbcehGetAutoStartInfo(phpLink->execHandler); + if (asInfo != NULL) { + unsigned i; + + for (i=0; i<fbaCount(asInfo->infoLines); i++) { + FBArray* infoLine = fbaObjectAtIndex(asInfo->infoLines, i); +// if (fbaCount(infoLine) == 2) { +// fbaObjectAtIndex(infoLine, 0); +// fbaObjectAtIndex(infoLine, 1); +// } +// else { + add_index_string(return_value, i, fbaObjectAtIndex(infoLine, 0), 1); +// } + + } + } + } +} +/* }}} */ + + #endif /* diff --git a/ext/fbsql/php_fbsql.h b/ext/fbsql/php_fbsql.h index 55480a3946..d10fe805d0 100644 --- a/ext/fbsql/php_fbsql.h +++ b/ext/fbsql/php_fbsql.h @@ -86,6 +86,9 @@ PHP_FUNCTION(fbsql_username); PHP_FUNCTION(fbsql_password); PHP_FUNCTION(fbsql_warnings); +PHP_FUNCTION(fbsql_get_autostart_info); +//PHP_FUNCTION(fbsql_set_autostart_info); + static void php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type); static void php_fbsql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistant); |