1
0
mirror of https://github.com/php/php-src.git synced 2026-04-20 14:31:06 +02:00

Fixing return value from fbsql_query after a DELETE FROM with success.

This commit is contained in:
Frank M. Kromann
2001-07-10 22:34:24 +00:00
parent 2bf0a0e5af
commit ad8150b3a9
2 changed files with 65 additions and 1 deletions

View File

@@ -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
/*

View File

@@ -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);