summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank M. Kromann <fmk@php.net>2001-07-10 22:34:24 +0000
committerFrank M. Kromann <fmk@php.net>2001-07-10 22:34:24 +0000
commitad8150b3a9d2e6e9d5dfde655fe42723ec02e0f1 (patch)
tree6ea836525df8c92a707a91e963bb784d1ac7e9c1
parent2bf0a0e5af1615a4af635695de3d18ece0950205 (diff)
downloadphp-git-ad8150b3a9d2e6e9d5dfde655fe42723ec02e0f1.tar.gz
Fixing return value from fbsql_query after a DELETE FROM with success.
-rw-r--r--ext/fbsql/php_fbsql.c63
-rw-r--r--ext/fbsql/php_fbsql.h3
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);