mirror of
https://github.com/php/php-src.git
synced 2026-04-11 01:53:36 +02:00
Use RETURN_ macros to define function returns.
Fix fetch functions to return values from array data structure
This commit is contained in:
@@ -115,7 +115,6 @@ struct PHPFBDatabase
|
||||
unsigned int index; /* The index in the list */
|
||||
PHPFBLink* link; /* A pointer to the corresponding link object, may be NULL if no link were used */
|
||||
char* databaseName; /* The name of the database */
|
||||
char* databasePassword; /* The database password */
|
||||
FBCDatabaseConnection* connection; /* The connection to the database */
|
||||
unsigned int errorNo; /* The latest error on the connection, 0 is ok. */
|
||||
char* errorText; /* The error text */
|
||||
@@ -159,6 +158,7 @@ struct PHPFBLink
|
||||
char* hostName; /* Host name */
|
||||
char* userName; /* User name */
|
||||
char* userPassword; /* User password */
|
||||
char* databasePassword; /* Database password */
|
||||
FBCExecHandler* execHandler; /* The exechandler, can be used for database operations */
|
||||
unsigned int affectedRows;
|
||||
long autoCommit; /* Enable or disable autoCommit */
|
||||
@@ -253,6 +253,7 @@ ZEND_GET_MODULE(fbsql)
|
||||
void phpfbReleaseResult (PHPFBResult* result);
|
||||
void phpfbReleaseDatabase (PHPFBDatabase* database);
|
||||
void phpfbReleaseLink (PHPFBLink* link);
|
||||
void phpfbReleasePLink (PHPFBLink* link);
|
||||
|
||||
PHPFBResult* phpfbRetainResult (PHPFBResult* result)
|
||||
{
|
||||
@@ -276,7 +277,6 @@ void phpfbReleaseResult (PHPFBResult* result)
|
||||
}
|
||||
if (result->rowHandler) fbcrhRelease(result->rowHandler);
|
||||
if (result->ResultmetaData) fbcmdRelease(result->ResultmetaData);
|
||||
/* if (result->metaData) fbcmdRelease(result->metaData); */
|
||||
if (result->list) fbcplRelease(result->list);
|
||||
if (result->array) fbaRelease(result->array);
|
||||
if (result->database)
|
||||
@@ -289,7 +289,7 @@ void phpfbReleaseResult (PHPFBResult* result)
|
||||
break;
|
||||
}
|
||||
}
|
||||
phpfbReleaseDatabase(result->database);
|
||||
// phpfbReleaseDatabase(result->database);
|
||||
}
|
||||
if (result->link)
|
||||
{
|
||||
@@ -301,7 +301,7 @@ void phpfbReleaseResult (PHPFBResult* result)
|
||||
break;
|
||||
}
|
||||
}
|
||||
phpfbReleaseLink(result->link);
|
||||
// phpfbReleaseLink(result->link);
|
||||
}
|
||||
result->link = 0;
|
||||
result->database = 0;
|
||||
@@ -316,7 +316,7 @@ void phpfbReleaseResult (PHPFBResult* result)
|
||||
result->row = NULL;
|
||||
result->array = NULL;
|
||||
result->list = NULL;
|
||||
free(result);
|
||||
efree(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -345,14 +345,13 @@ void phpfbReleaseDatabase (PHPFBDatabase* database)
|
||||
break;
|
||||
}
|
||||
}
|
||||
phpfbReleaseLink(database->link);
|
||||
// phpfbReleaseLink(database->link);
|
||||
}
|
||||
fbcdcClose(database->connection);
|
||||
fbcdcRelease(database->connection);
|
||||
free(database->databaseName);
|
||||
free(database->databasePassword);
|
||||
free(database->results);
|
||||
free(database);
|
||||
if (database->databaseName) efree(database->databaseName);
|
||||
if (database->results) efree(database->results);
|
||||
efree(database);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -372,12 +371,36 @@ void phpfbReleaseLink (PHPFBLink* link)
|
||||
if (link->retainCount == 0)
|
||||
{
|
||||
if (link->index == FB_SQL_G(linkIndex)) FB_SQL_G(linkIndex)--;
|
||||
free(link->hostName);
|
||||
free(link->userName);
|
||||
free(link->userPassword);
|
||||
if (link->results) free(link->results);
|
||||
if (link->databases) free(link->databases);
|
||||
free(link);
|
||||
if (link->hostName) efree(link->hostName);
|
||||
if (link->userName) efree(link->userName);
|
||||
if (link->userPassword) efree(link->userPassword);
|
||||
if (link->databasePassword) efree(link->databasePassword);
|
||||
if (link->results) efree(link->results);
|
||||
if (link->databases) efree(link->databases);
|
||||
efree(link);
|
||||
FB_SQL_G(linkCount)--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void phpfbReleasePLink (PHPFBLink* link)
|
||||
{
|
||||
FBSQLLS_FETCH();
|
||||
if (link)
|
||||
{
|
||||
link->retainCount--;
|
||||
if (link->retainCount == 0)
|
||||
{
|
||||
if (link->index == FB_SQL_G(linkIndex)) FB_SQL_G(linkIndex)--;
|
||||
if (link->hostName) efree(link->hostName);
|
||||
if (link->userName) efree(link->userName);
|
||||
if (link->userPassword) efree(link->userPassword);
|
||||
if (link->databasePassword) efree(link->databasePassword);
|
||||
if (link->results) efree(link->results);
|
||||
if (link->databases) efree(link->databases);
|
||||
efree(link);
|
||||
FB_SQL_G(linkCount)--;
|
||||
FB_SQL_G(persistantCount)--;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -432,6 +455,7 @@ PHP_MINIT_FUNCTION(fbsql)
|
||||
|
||||
le_result = register_list_destructors(phpfbReleaseResult,NULL);
|
||||
le_link = register_list_destructors(phpfbReleaseLink,NULL);
|
||||
le_plink = register_list_destructors(NULL, phpfbReleasePLink);
|
||||
le_dba = register_list_destructors(phpfbReleaseDatabase,NULL);
|
||||
|
||||
REGISTER_LONG_CONSTANT("FBSQL_ASSOC", FBSQL_ASSOC, CONST_CS | CONST_PERSISTENT);
|
||||
@@ -521,20 +545,21 @@ PHPFBLink* phpfbConnect(INTERNAL_FUNCTION_PARAMETERS, char *hostName, char *user
|
||||
{
|
||||
FBCExecHandler* execHandler = fbcehHandlerForHost(hostName,128);
|
||||
list_entry le;
|
||||
result = malloc(sizeof(PHPFBLink));
|
||||
result->retainCount = 1;
|
||||
result->persistant = persistant;
|
||||
result->hostName = estrdup(hostName);
|
||||
result->userName = estrdup(userName);
|
||||
result->userPassword = estrdup(userPassword);
|
||||
result->execHandler = execHandler;
|
||||
result->affectedRows = 0;
|
||||
result->autoCommit = FB_SQL_G(autoCommit);
|
||||
result->currentDatabase = NULL;
|
||||
result->databaseCount = 0;
|
||||
result->databases = NULL;
|
||||
result->resultCount = 0;
|
||||
result->results = NULL;
|
||||
result = emalloc(sizeof(PHPFBLink));
|
||||
result->retainCount = 1;
|
||||
result->persistant = persistant;
|
||||
result->hostName = estrdup(hostName);
|
||||
result->userName = estrdup(userName);
|
||||
result->userPassword = estrdup(userPassword);
|
||||
result->databasePassword = estrdup(FB_SQL_G(databasePassword));
|
||||
result->execHandler = execHandler;
|
||||
result->affectedRows = 0;
|
||||
result->autoCommit = FB_SQL_G(autoCommit);
|
||||
result->currentDatabase = NULL;
|
||||
result->databaseCount = 0;
|
||||
result->databases = NULL;
|
||||
result->resultCount = 0;
|
||||
result->results = NULL;
|
||||
|
||||
le.ptr = result;
|
||||
le.type = le_link;
|
||||
@@ -545,8 +570,6 @@ PHPFBLink* phpfbConnect(INTERNAL_FUNCTION_PARAMETERS, char *hostName, char *user
|
||||
}
|
||||
result->index = zend_list_insert (phpfbRetainLink(result), le_link);
|
||||
FB_SQL_G(linkCount)++;
|
||||
/* printf(" new %x %d \n",result,result->index); */
|
||||
/* printf("Ny connection %x %x\n",result,result->execHandler); */
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -603,8 +626,7 @@ void phpfbDoConnect(INTERNAL_FUNCTION_PARAMETERS,int persistant)
|
||||
result = phpfbConnect(INTERNAL_FUNCTION_PARAM_PASSTHRU,hostName,userName,userPassword,persistant);
|
||||
if (result == NULL) RETURN_FALSE;
|
||||
FB_SQL_G(linkIndex) = result->index;
|
||||
return_value->value.lval = result->index;
|
||||
return_value->type = IS_LONG;
|
||||
RETURN_LONG(result->index);
|
||||
}
|
||||
|
||||
/* {{{ proto int fbsql_connect([string hostname [, string username [, string password]]]);
|
||||
@@ -745,15 +767,15 @@ PHPFBDatabase* phpfbSelectDB
|
||||
|
||||
port = atoi(databaseName);
|
||||
if (port>0 && port<65535)
|
||||
c = fbcdcConnectToDatabaseUsingPort(link->hostName, port,FB_SQL_G(databasePassword));
|
||||
c = fbcdcConnectToDatabaseUsingPort(link->hostName, port, link->databasePassword);
|
||||
else
|
||||
c = fbcdcConnectToDatabase(databaseName,link->hostName,FB_SQL_G(databasePassword));
|
||||
c = fbcdcConnectToDatabase(databaseName, link->hostName, link->databasePassword);
|
||||
if (c == NULL)
|
||||
{
|
||||
php_error(E_WARNING, fbcdcClassErrorMessage());
|
||||
return NULL;
|
||||
}
|
||||
md = fbcdcCreateSession(c,"PHP",link->userName,link->userPassword,link->userName);
|
||||
md = fbcdcCreateSession(c,"PHP",link->userName, link->userPassword, link->userName);
|
||||
if (fbcmdErrorsFound(md))
|
||||
{
|
||||
FBCErrorMetaData* emd = fbcdcErrorMetaData(c,md);
|
||||
@@ -762,7 +784,7 @@ PHPFBDatabase* phpfbSelectDB
|
||||
php_error(E_WARNING, emg);
|
||||
else
|
||||
php_error(E_WARNING,"No message");
|
||||
free(emg);
|
||||
efree(emg);
|
||||
fbcemdRelease(emd);
|
||||
fbcmdRelease(md);
|
||||
fbcdcClose(c);
|
||||
@@ -783,20 +805,19 @@ PHPFBDatabase* phpfbSelectDB
|
||||
fbcdcSetInputCharacterSet(c,FBC_ISO8859_1);
|
||||
|
||||
le.type = le_dba;
|
||||
le.ptr = result = malloc(sizeof(PHPFBDatabase));
|
||||
le.ptr = result = emalloc(sizeof(PHPFBDatabase));
|
||||
|
||||
if (zend_hash_update(link->persistant?&EG(persistent_list):&EG(regular_list), name, strlen(name), &le, sizeof(le), NULL)==FAILURE)
|
||||
{
|
||||
fbcdcClose(c);
|
||||
fbcdcRelease(c);
|
||||
free(result);
|
||||
efree(result);
|
||||
return NULL;
|
||||
}
|
||||
result->retainCount = 2;
|
||||
result->index = zend_list_insert((PHPFBDatabase*)(le.ptr), le_dba);
|
||||
result->link = phpfbRetainLink(link);
|
||||
result->databaseName = estrdup(databaseName);
|
||||
result->databasePassword = estrdup(FB_SQL_G(databasePassword));
|
||||
result->connection = c;
|
||||
result->errorNo = 0;
|
||||
result->errorText = NULL;
|
||||
@@ -816,9 +837,9 @@ PHPFBDatabase* phpfbSelectDB
|
||||
FB_SQL_G(databaseCount)++;
|
||||
}
|
||||
link->currentDatabase = result;
|
||||
FB_SQL_G(databaseIndex) = result->index;
|
||||
return_value->value.lval = result->index;
|
||||
return_value->type = IS_LONG;
|
||||
FB_SQL_G(databaseIndex) = result->index;
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -839,7 +860,7 @@ void phpfbestrdup (const char * s, int* length, char** value)
|
||||
*length = l;
|
||||
}
|
||||
|
||||
/* {{{ proto bool fbsql_list_autocommit(int link_identifier [, bool OnOff])
|
||||
/* {{{ proto bool fbsql_autocommit(int link_identifier [, bool OnOff])
|
||||
*/
|
||||
PHP_FUNCTION(fbsql_autocommit)
|
||||
{
|
||||
@@ -871,7 +892,7 @@ PHP_FUNCTION(fbsql_autocommit)
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto int fbsql_list_commit([int link_identifier])
|
||||
/* {{{ proto int fbsql_commit([int link_identifier])
|
||||
*/
|
||||
PHP_FUNCTION(fbsql_commit)
|
||||
{
|
||||
@@ -907,7 +928,7 @@ PHP_FUNCTION(fbsql_commit)
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto int fbsql_list_rollback([int link_identifier])
|
||||
/* {{{ proto int fbsql_rollback([int link_identifier])
|
||||
*/
|
||||
PHP_FUNCTION(fbsql_rollback)
|
||||
{
|
||||
@@ -926,7 +947,7 @@ PHP_FUNCTION(fbsql_rollback)
|
||||
if (argc == 1)
|
||||
{
|
||||
convert_to_long_ex(argv[0]);
|
||||
link = (*argv[0])->value.lval;
|
||||
link = Z_LVAL_PP(argv[0]);
|
||||
}
|
||||
|
||||
phpLink = phpfbGetLink(link);
|
||||
@@ -957,17 +978,16 @@ PHP_FUNCTION(fbsql_hostname)
|
||||
if (zend_get_parameters_ex(argc,&argv[0],&argv[1])==FAILURE) RETURN_FALSE;
|
||||
|
||||
convert_to_long_ex(argv[0]);
|
||||
phpLink = phpfbGetLink((*argv[0])->value.lval);
|
||||
phpLink = phpfbGetLink(Z_LVAL_PP(argv[0]));
|
||||
if (phpLink == NULL) RETURN_FALSE;
|
||||
|
||||
phpfbestrdup(phpLink->hostName, &return_value->value.str.len, &return_value->value.str.val);
|
||||
return_value->type = IS_STRING;
|
||||
if (argc == 2)
|
||||
{
|
||||
convert_to_string_ex(argv[1]);
|
||||
if (phpLink->hostName) free(phpLink->hostName);
|
||||
phpLink->hostName = estrdup((*argv[1])->value.str.val);
|
||||
if (phpLink->hostName) efree(phpLink->hostName);
|
||||
phpLink->hostName = estrndup(Z_STRVAL_PP(argv[1]), Z_STRLEN_PP(argv[1]));
|
||||
}
|
||||
RETURN_STRING(phpLink->hostName, 1);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -985,17 +1005,16 @@ PHP_FUNCTION(fbsql_database)
|
||||
if (zend_get_parameters_ex(argc,&argv[0],&argv[1])==FAILURE) RETURN_FALSE;
|
||||
|
||||
convert_to_long_ex(argv[0]);
|
||||
phpLink = phpfbGetLink((*argv[0])->value.lval);
|
||||
phpLink = phpfbGetLink(Z_LVAL_PP(argv[0]));
|
||||
if (phpLink == NULL) RETURN_FALSE;
|
||||
|
||||
phpfbestrdup(phpLink->currentDatabase->databaseName, &return_value->value.str.len, &return_value->value.str.val);
|
||||
return_value->type = IS_STRING;
|
||||
if (argc == 2)
|
||||
{
|
||||
convert_to_string_ex(argv[1]);
|
||||
if (phpLink->currentDatabase->databaseName) free(phpLink->currentDatabase->databaseName);
|
||||
phpLink->currentDatabase->databaseName = strdup((*argv[1])->value.str.val);
|
||||
if (phpLink->currentDatabase->databaseName) efree(phpLink->currentDatabase->databaseName);
|
||||
phpLink->currentDatabase->databaseName = estrndup(Z_STRVAL_PP(argv[1]), Z_STRLEN_PP(argv[1]));
|
||||
}
|
||||
RETURN_STRING(phpLink->currentDatabase->databaseName, 1);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -1005,64 +1024,78 @@ PHP_FUNCTION(fbsql_database)
|
||||
PHP_FUNCTION(fbsql_database_password)
|
||||
{
|
||||
int argc = ARG_COUNT(ht);
|
||||
zval **argv[1];
|
||||
zval **argv[2];
|
||||
PHPFBLink* phpLink = NULL;
|
||||
FBSQLLS_FETCH();
|
||||
|
||||
if ((argc < 0) || (argc > 1)) WRONG_PARAM_COUNT;
|
||||
if (zend_get_parameters_ex(argc,&argv[0])==FAILURE) RETURN_FALSE;
|
||||
if ((argc < 1) || (argc > 2)) WRONG_PARAM_COUNT;
|
||||
if (zend_get_parameters_ex(argc,&argv[0],&argv[1])==FAILURE) RETURN_FALSE;
|
||||
|
||||
if (argc >= 1)
|
||||
convert_to_long_ex(argv[0]);
|
||||
phpLink = phpfbGetLink(Z_LVAL_PP(argv[0]));
|
||||
if (phpLink == NULL) RETURN_FALSE;
|
||||
|
||||
if (argc == 2)
|
||||
{
|
||||
convert_to_string_ex(argv[0]);
|
||||
if (FB_SQL_G(databasePassword)) free(FB_SQL_G(databasePassword));
|
||||
FB_SQL_G(databasePassword) = estrdup((*argv[0])->value.str.val);
|
||||
convert_to_string_ex(argv[1]);
|
||||
if (phpLink->databasePassword) efree(phpLink->databasePassword);
|
||||
phpLink->databasePassword = estrndup(Z_STRVAL_PP(argv[1]), Z_STRLEN_PP(argv[1]));
|
||||
}
|
||||
phpfbestrdup(phpLink->currentDatabase->databasePassword, &return_value->value.str.len, &return_value->value.str.val);
|
||||
return_value->type = IS_STRING;
|
||||
RETURN_STRING(phpLink->databasePassword, 1);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
||||
/* {{{ proto string fbsql_username([string username])
|
||||
/* {{{ proto string fbsql_username(int link_identifier [, string username])
|
||||
*/
|
||||
PHP_FUNCTION(fbsql_username)
|
||||
{
|
||||
int argc = ARG_COUNT(ht);
|
||||
zval **argv[1];
|
||||
zval **argv[2];
|
||||
PHPFBLink* phpLink = NULL;
|
||||
FBSQLLS_FETCH();
|
||||
|
||||
if ((argc < 0) || (argc > 1)) WRONG_PARAM_COUNT;
|
||||
if (zend_get_parameters_ex(argc, &argv[0])==FAILURE) RETURN_FALSE;
|
||||
if ((argc < 1) || (argc > 2)) WRONG_PARAM_COUNT;
|
||||
if (zend_get_parameters_ex(argc,&argv[0],&argv[1])==FAILURE) RETURN_FALSE;
|
||||
|
||||
if (argc >= 1)
|
||||
convert_to_long_ex(argv[0]);
|
||||
phpLink = phpfbGetLink(Z_LVAL_PP(argv[0]));
|
||||
if (phpLink == NULL) RETURN_FALSE;
|
||||
|
||||
if (argc == 2)
|
||||
{
|
||||
convert_to_string_ex(argv[0]);
|
||||
if (FB_SQL_G(userName)) free(FB_SQL_G(userName));
|
||||
FB_SQL_G(userName) = strdup((*argv[0])->value.str.val);
|
||||
convert_to_string_ex(argv[1]);
|
||||
if (phpLink->userName) efree(phpLink->userName);
|
||||
phpLink->userName = estrndup(Z_STRVAL_PP(argv[1]), Z_STRLEN_PP(argv[1]));
|
||||
}
|
||||
phpfbestrdup(FB_SQL_G(userName), &return_value->value.str.len, &return_value->value.str.val);
|
||||
return_value->type = IS_STRING;
|
||||
RETURN_STRING(phpLink->userName, 1);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
||||
/* {{{ proto fbsql_password([string password])
|
||||
/* {{{ proto string fbsql_password(int link_identifier [, string password])
|
||||
*/
|
||||
PHP_FUNCTION(fbsql_password)
|
||||
{
|
||||
int argc = ARG_COUNT(ht);
|
||||
zval **argv[1];
|
||||
PHPFBLink* phpLink = NULL;
|
||||
FBSQLLS_FETCH();
|
||||
|
||||
if ((argc < 0) || (argc > 1)) WRONG_PARAM_COUNT;
|
||||
if (zend_get_parameters_ex(argc, &argv[0])==FAILURE) RETURN_FALSE;
|
||||
if (argc >= 1)
|
||||
if ((argc < 1) || (argc > 2)) WRONG_PARAM_COUNT;
|
||||
if (zend_get_parameters_ex(argc,&argv[0],&argv[1])==FAILURE) RETURN_FALSE;
|
||||
|
||||
convert_to_long_ex(argv[0]);
|
||||
phpLink = phpfbGetLink(Z_LVAL_PP(argv[0]));
|
||||
if (phpLink == NULL) RETURN_FALSE;
|
||||
|
||||
if (argc == 2)
|
||||
{
|
||||
convert_to_string_ex(argv[0]);
|
||||
if (FB_SQL_G(userPassword)) free(FB_SQL_G(userPassword));
|
||||
FB_SQL_G(userPassword) = strdup((*argv[0])->value.str.val);
|
||||
convert_to_string_ex(argv[1]);
|
||||
if (phpLink->userPassword) efree(phpLink->userPassword);
|
||||
phpLink->userPassword = estrndup(Z_STRVAL_PP(argv[1]), Z_STRLEN_PP(argv[1]));
|
||||
}
|
||||
RETURN_STRING(phpLink->userPassword, 1);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -1086,13 +1119,13 @@ PHP_FUNCTION(fbsql_select_db)
|
||||
if (argc >= 1)
|
||||
{
|
||||
convert_to_string_ex(argv[0]);
|
||||
name = (*argv[0])->value.str.val;
|
||||
name = Z_STRVAL_PP(argv[0]);
|
||||
}
|
||||
|
||||
if (argc >= 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
phpLink = phpfbGetLink((*argv[1])->value.lval);
|
||||
phpLink = phpfbGetLink(Z_LVAL_PP(argv[1]));
|
||||
}
|
||||
else if (FB_SQL_G(linkIndex) == 0)
|
||||
{
|
||||
@@ -1113,14 +1146,13 @@ PHP_FUNCTION(fbsql_select_db)
|
||||
}
|
||||
}
|
||||
|
||||
database = phpfbSelectDB(INTERNAL_FUNCTION_PARAM_PASSTHRU,name,phpLink);
|
||||
database = phpfbSelectDB(INTERNAL_FUNCTION_PARAM_PASSTHRU,name, phpLink);
|
||||
if (database == NULL) RETURN_FALSE;
|
||||
|
||||
phpLink->currentDatabase = database;
|
||||
FB_SQL_G(linkIndex) = phpLink->index;
|
||||
FB_SQL_G(linkIndex) = phpLink->index;
|
||||
|
||||
return_value->value.lval = database->index;
|
||||
return_value->type = IS_LONG;
|
||||
RETURN_LONG(database->index);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -1159,10 +1191,10 @@ PHP_FUNCTION(fbsql_change_user)
|
||||
if (argc >= 4)
|
||||
{
|
||||
convert_to_long_ex(argv[3]);
|
||||
link = (*argv[3])->value.lval;
|
||||
link = Z_LVAL_PP(argv[3]);
|
||||
}
|
||||
if ((phpLink = phpfbGetLink(link))==NULL) RETURN_FALSE;
|
||||
if ((phpDatabase = phpfbSelectDB(INTERNAL_FUNCTION_PARAM_PASSTHRU,databaseName,phpLink)) == NULL) RETURN_FALSE;
|
||||
if ((phpDatabase = phpfbSelectDB(INTERNAL_FUNCTION_PARAM_PASSTHRU, databaseName, phpLink)) == NULL) RETURN_FALSE;
|
||||
{
|
||||
char buffer[1024];
|
||||
sprintf(buffer,"SET AUTHORIZATION %s;",userName);
|
||||
@@ -1170,7 +1202,7 @@ PHP_FUNCTION(fbsql_change_user)
|
||||
phpfbQuery(INTERNAL_FUNCTION_PARAM_PASSTHRU,buffer, phpDatabase);
|
||||
if (return_value->value.lval)
|
||||
{
|
||||
free(phpLink->userName);
|
||||
efree(phpLink->userName);
|
||||
phpLink->userName = estrdup(userName);
|
||||
}
|
||||
}
|
||||
@@ -1204,7 +1236,7 @@ PHP_FUNCTION(fbsql_create_db)
|
||||
if (argc == 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
link = (*argv[1])->value.lval;
|
||||
link = Z_LVAL_PP(argv[1]);
|
||||
phpLink = phpfbGetLink(link);
|
||||
if (phpLink == NULL) RETURN_FALSE;
|
||||
}
|
||||
@@ -1274,7 +1306,7 @@ PHP_FUNCTION(fbsql_drop_db)
|
||||
if (argc == 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
phpLink = phpfbGetLink((*argv[1])->value.lval);
|
||||
phpLink = phpfbGetLink(Z_LVAL_PP(argv[1]));
|
||||
if (phpLink == NULL) RETURN_FALSE;
|
||||
}
|
||||
else
|
||||
@@ -1353,7 +1385,7 @@ PHP_FUNCTION(fbsql_stop_db)
|
||||
if (argc == 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
link = (*argv[1])->value.lval;
|
||||
link = Z_LVAL_PP(argv[1]);
|
||||
phpLink = phpfbGetLink(link);
|
||||
if (phpLink == NULL) RETURN_FALSE;
|
||||
}
|
||||
@@ -1363,7 +1395,7 @@ PHP_FUNCTION(fbsql_stop_db)
|
||||
if (phpLink == NULL) RETURN_FALSE;
|
||||
}
|
||||
|
||||
phpDatabase = phpfbSelectDB(INTERNAL_FUNCTION_PARAM_PASSTHRU, databaseName,phpLink);
|
||||
phpDatabase = phpfbSelectDB(INTERNAL_FUNCTION_PARAM_PASSTHRU, databaseName, phpLink);
|
||||
if (phpDatabase == NULL) RETURN_FALSE;
|
||||
|
||||
/* printf("Stop db %x\n",phpDatabase->connection); */
|
||||
@@ -1428,7 +1460,7 @@ PHP_FUNCTION(fbsql_start_db)
|
||||
if (argc >= 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
phpLink = phpfbGetLink((*argv[1])->value.lval);
|
||||
phpLink = phpfbGetLink(Z_LVAL_PP(argv[1]));
|
||||
}
|
||||
else if (FB_SQL_G(linkIndex) == 0)
|
||||
{
|
||||
@@ -1492,7 +1524,7 @@ int mdOk(PHPFBDatabase* database, FBCMetaData* md)
|
||||
database->errorNo = 0;
|
||||
if (database->errorText)
|
||||
{
|
||||
free(database->errorText);
|
||||
efree(database->errorText);
|
||||
database->errorText = NULL;
|
||||
}
|
||||
if (md == NULL)
|
||||
@@ -1576,7 +1608,7 @@ PHPFBResult* phpfbQuery(INTERNAL_FUNCTION_PARAMETERS, char* sql, PHPFBDatabase*
|
||||
else if (fh || (tp[0] == 'E'))
|
||||
{
|
||||
unsigned i;
|
||||
result = malloc(sizeof(PHPFBResult));
|
||||
result = emalloc(sizeof(PHPFBResult));
|
||||
result->retainCount = 1;
|
||||
result->index = zend_list_insert(result,le_result);
|
||||
result->link = NULL;
|
||||
@@ -1651,7 +1683,7 @@ PHP_FUNCTION(fbsql_query)
|
||||
if (argc >= 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
phpLink = phpfbGetLink((*argv[1])->value.lval);
|
||||
phpLink = phpfbGetLink(Z_LVAL_PP(argv[1]));
|
||||
}
|
||||
else if (FB_SQL_G(linkIndex) == 0)
|
||||
{
|
||||
@@ -1714,7 +1746,7 @@ PHP_FUNCTION(fbsql_db_query)
|
||||
}
|
||||
if (phpLink == NULL) RETURN_FALSE;
|
||||
/* printf("Query db at link %s@%s\n",phpLink->hostName,phpLink->userName); */
|
||||
phpDatabase = phpfbSelectDB(INTERNAL_FUNCTION_PARAM_PASSTHRU, databaseName,phpLink);
|
||||
phpDatabase = phpfbSelectDB(INTERNAL_FUNCTION_PARAM_PASSTHRU, databaseName, phpLink);
|
||||
if (phpDatabase == NULL) RETURN_FALSE;
|
||||
|
||||
phpResult = phpfbQuery(INTERNAL_FUNCTION_PARAM_PASSTHRU,sql,phpDatabase);
|
||||
@@ -1759,7 +1791,7 @@ PHP_FUNCTION(fbsql_list_dbs)
|
||||
php_error(E_WARNING,"FrontBase result set limit %d exceeded",FB_SQL_G(maxResults));
|
||||
RETURN_FALSE
|
||||
}
|
||||
phpResult = malloc(sizeof(PHPFBResult));
|
||||
phpResult = emalloc(sizeof(PHPFBResult));
|
||||
phpResult->retainCount = 1;
|
||||
phpResult->index = zend_list_insert(phpResult, le_result);
|
||||
phpResult->link = phpfbRetainLink(phpLink);
|
||||
@@ -1787,8 +1819,7 @@ PHP_FUNCTION(fbsql_list_dbs)
|
||||
for (j=i; j < phpLink->resultCount ; j++)phpLink->results[j] = NULL;
|
||||
}
|
||||
phpLink->results[i] = phpResult;
|
||||
return_value->value.lval = phpResult->index;
|
||||
return_value->type = IS_LONG;
|
||||
RETURN_LONG(phpResult->index);
|
||||
FB_SQL_G(resultIndex) = phpResult->index;
|
||||
FB_SQL_G(linkIndex) = phpLink->index;
|
||||
}
|
||||
@@ -1820,7 +1851,7 @@ PHP_FUNCTION(fbsql_list_tables)
|
||||
if (argc >= 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
phpLink = phpfbGetLink((*argv[1])->value.lval);
|
||||
phpLink = phpfbGetLink(Z_LVAL_PP(argv[1]));
|
||||
}
|
||||
else if (FB_SQL_G(linkIndex) == 0)
|
||||
{
|
||||
@@ -1838,7 +1869,7 @@ PHP_FUNCTION(fbsql_list_tables)
|
||||
}
|
||||
else
|
||||
{
|
||||
phpLink->currentDatabase = phpfbSelectDB(INTERNAL_FUNCTION_PARAM_PASSTHRU, databaseName,phpLink);
|
||||
phpLink->currentDatabase = phpfbSelectDB(INTERNAL_FUNCTION_PARAM_PASSTHRU, databaseName, phpLink);
|
||||
}
|
||||
phpDatabase = phpLink->currentDatabase;
|
||||
if (phpDatabase == NULL) RETURN_FALSE;
|
||||
@@ -1939,8 +1970,7 @@ PHP_FUNCTION(fbsql_error)
|
||||
/* printf("Query db at link %s@%s\n",phpLink->hostName,phpLink->userName); */
|
||||
phpDatabase = phpLink->currentDatabase;
|
||||
if ((phpDatabase == NULL) || (phpDatabase->errorText == NULL)) RETURN_FALSE;
|
||||
phpfbestrdup(phpDatabase->errorText,&return_value->value.str.len,&return_value->value.str.val);
|
||||
return_value->type = IS_STRING;
|
||||
RETURN_STRING(phpDatabase->errorText, 1);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -1970,8 +2000,7 @@ PHP_FUNCTION(fbsql_errno)
|
||||
/* printf("Query db at link %s@%s\n",phpLink->hostName,phpLink->userName); */
|
||||
phpDatabase = phpLink->currentDatabase;
|
||||
if (phpDatabase == NULL) RETURN_FALSE;
|
||||
return_value->value.lval = phpDatabase->errorNo;
|
||||
return_value->type = IS_LONG;
|
||||
RETURN_LONG(phpDatabase->errorNo);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -2018,8 +2047,7 @@ PHP_FUNCTION(fbsql_affected_rows)
|
||||
}
|
||||
phpLink = phpfbGetLink(link);
|
||||
if (phpLink == NULL) RETURN_FALSE;
|
||||
return_value->value.lval = phpLink->affectedRows;
|
||||
return_value->type = IS_LONG;
|
||||
RETURN_LONG(phpLink->affectedRows);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -2058,8 +2086,7 @@ PHP_FUNCTION(fbsql_insert_id)
|
||||
phpDatabase = phpLink->currentDatabase;
|
||||
if (phpDatabase == NULL) RETURN_FALSE;
|
||||
|
||||
return_value->value.lval = phpDatabase->rowIndex;
|
||||
return_value->type = IS_LONG;
|
||||
RETURN_LONG(phpDatabase->rowIndex);
|
||||
FB_SQL_G(linkIndex) = phpLink->index;
|
||||
}
|
||||
/* }}} */
|
||||
@@ -2269,40 +2296,34 @@ void phpfbSqlResult (INTERNAL_FUNCTION_PARAMETERS, PHPFBResult* result, int rowI
|
||||
if (columnIndex == 0)
|
||||
{ /* Name */
|
||||
FBCPList* name = (FBCPList*)fbcplValueForKey(column,"NAME");
|
||||
return_value->type = IS_STRING;
|
||||
phpfbestrdup(fbcplString((FBCPList*)name), &return_value->value.str.len, &return_value->value.str.val);
|
||||
RETURN_STRING((char *)fbcplString((FBCPList*)name), 1);
|
||||
}
|
||||
else if (columnIndex == 2)
|
||||
{ /* Length */
|
||||
FBCPList* name = (FBCPList*)fbcplValueForKey(column,"WIDTH");
|
||||
return_value->type = IS_STRING;
|
||||
phpfbestrdup((const char*)fbcplString(name), &return_value->value.str.len, &return_value->value.str.val);
|
||||
RETURN_STRING((char *)fbcplString((FBCPList*)name), 1);
|
||||
}
|
||||
else if (columnIndex == 1)
|
||||
{ /* Type */
|
||||
FBCPList* name = (FBCPList*)fbcplValueForKey(column,"DATATYPE");
|
||||
return_value->type = IS_STRING;
|
||||
phpfbestrdup((const char*)fbcplString(name), &return_value->value.str.len, &return_value->value.str.val);
|
||||
RETURN_STRING((char *)fbcplString((FBCPList*)name), 1);
|
||||
}
|
||||
else if (columnIndex == 3)
|
||||
{ /* Flags */
|
||||
return_value->type = IS_STRING;
|
||||
phpfbestrdup("", &return_value->value.str.len, &return_value->value.str.val);
|
||||
RETURN_STRING("", 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
return_value->type = IS_STRING;
|
||||
phpfbestrdup("", &return_value->value.str.len, &return_value->value.str.val);
|
||||
RETURN_STRING("", 1);
|
||||
}
|
||||
}
|
||||
else if (result->array)
|
||||
{ /* Special case for get dbs */
|
||||
phpfbestrdup((char*)fbaObjectAtIndex(result->array,rowIndex), &return_value->value.str.len, &return_value->value.str.val);
|
||||
return_value->type = IS_STRING;
|
||||
RETURN_STRING(fbaObjectAtIndex(result->array,rowIndex), 1);
|
||||
}
|
||||
else if (!phpfbFetchRow(result,rowIndex))
|
||||
{
|
||||
/* php_error(E_WARNING,"No such row %d in result set %d",resultIndex+1,rowIndex); */
|
||||
php_error(E_WARNING,"No such row %d in result set %d",rowIndex,rowIndex);
|
||||
RETURN_FALSE;
|
||||
}
|
||||
else if (columnIndex >= result->columnCount)
|
||||
@@ -2324,7 +2345,7 @@ void phpfbSqlResult (INTERNAL_FUNCTION_PARAMETERS, PHPFBResult* result, int rowI
|
||||
}
|
||||
else
|
||||
{
|
||||
return_value->type = IS_NULL;
|
||||
RETURN_NULL();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2358,7 +2379,7 @@ PHP_FUNCTION(fbsql_result)
|
||||
if (argc >= 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
rowIndex = (*argv[1])->value.lval;
|
||||
rowIndex = Z_LVAL_PP(argv[1]);
|
||||
}
|
||||
|
||||
columnIndex = result->columnIndex;
|
||||
@@ -2482,8 +2503,7 @@ PHP_FUNCTION(fbsql_num_rows)
|
||||
rowCount = result->rowCount;
|
||||
}
|
||||
}
|
||||
return_value->value.lval = rowCount;
|
||||
return_value->type = IS_LONG;
|
||||
RETURN_LONG(rowCount);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -2511,9 +2531,7 @@ PHP_FUNCTION(fbsql_num_fields)
|
||||
result = phpfbGetResult(resultIndex);
|
||||
if (result == NULL) RETURN_FALSE;
|
||||
|
||||
return_value->value.lval = result->columnCount;
|
||||
return_value->type = IS_LONG;
|
||||
|
||||
RETURN_LONG(result->columnCount);
|
||||
FB_SQL_G(resultIndex) = resultIndex;
|
||||
}
|
||||
/* }}} */
|
||||
@@ -2588,64 +2606,83 @@ static void php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type)
|
||||
if (argc == 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
result_type = (*argv[1])->value.lval;
|
||||
result_type = Z_LVAL_PP(argv[1]);
|
||||
if (((result_type & FBSQL_NUM) != FBSQL_NUM) && ((result_type & FBSQL_ASSOC) != FBSQL_ASSOC))
|
||||
{
|
||||
php_error(E_WARNING,"Illegal result type use FBSQL_NUM, FBSQL_ASSOC, or FBSQL_BOTH.");
|
||||
RETURN_FALSE;
|
||||
}
|
||||
}
|
||||
if (result->fetchHandle == NULL)
|
||||
{
|
||||
RETURN_FALSE;
|
||||
}
|
||||
if (result->rowCount == 0) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
if (result->rowCount == 0x7fffffff)
|
||||
{
|
||||
if (!phpfbFetchRow(result,result->rowIndex)) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
}
|
||||
row = fbcrhRowAtIndex(result->rowHandler,rowIndex);
|
||||
if (row == NULL)
|
||||
{
|
||||
RETURN_FALSE;
|
||||
}
|
||||
if (array_init(return_value)==FAILURE)
|
||||
{
|
||||
RETURN_FALSE;
|
||||
}
|
||||
for (i=0; i < result->columnCount; i++)
|
||||
if (result->fetchHandle == NULL)
|
||||
{
|
||||
if (row[i])
|
||||
unsigned int c = 0;
|
||||
if (result->array == NULL)
|
||||
{
|
||||
char* value;
|
||||
unsigned int length;
|
||||
unsigned int c = 0;
|
||||
phpfbColumnAsString(result,i,row[i],&length,&value);
|
||||
if (result_type & FBSQL_NUM)
|
||||
{
|
||||
add_index_stringl(return_value,i,value,length,c);
|
||||
c = 1;
|
||||
}
|
||||
if (result_type & FBSQL_ASSOC)
|
||||
{
|
||||
char* key = (char*)fbccmdLabelName(fbcmdColumnMetaDataAtIndex(result->metaData, i));
|
||||
add_assoc_stringl(return_value,key, value, length, c);
|
||||
RETURN_FALSE;
|
||||
}
|
||||
if (result->rowIndex >= result->rowCount)
|
||||
{
|
||||
RETURN_FALSE;
|
||||
}
|
||||
if (result_type & FBSQL_NUM)
|
||||
{
|
||||
add_index_string(return_value,0,estrdup(fbaObjectAtIndex(result->array,result->rowIndex)),c);
|
||||
c = 1;
|
||||
}
|
||||
if (result_type & FBSQL_ASSOC)
|
||||
{
|
||||
add_assoc_string(return_value, "Database", estrdup(fbaObjectAtIndex(result->array,result->rowIndex)), c);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (result->rowCount == 0) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
if (result->rowCount == 0x7fffffff)
|
||||
{
|
||||
if (!phpfbFetchRow(result,result->rowIndex)) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
row = fbcrhRowAtIndex(result->rowHandler,rowIndex);
|
||||
if (row == NULL)
|
||||
{
|
||||
if (result_type & FBSQL_NUM)
|
||||
RETURN_FALSE;
|
||||
}
|
||||
for (i=0; i < result->columnCount; i++)
|
||||
{
|
||||
if (row[i])
|
||||
{
|
||||
add_index_unset(return_value,i);
|
||||
char* value;
|
||||
unsigned int length;
|
||||
unsigned int c = 0;
|
||||
phpfbColumnAsString(result,i,row[i],&length,&value);
|
||||
if (result_type & FBSQL_NUM)
|
||||
{
|
||||
add_index_stringl(return_value,i,value,length,c);
|
||||
c = 1;
|
||||
}
|
||||
if (result_type & FBSQL_ASSOC)
|
||||
{
|
||||
char* key = (char*)fbccmdLabelName(fbcmdColumnMetaDataAtIndex(result->metaData, i));
|
||||
add_assoc_stringl(return_value,key, value, length, c);
|
||||
}
|
||||
}
|
||||
if (result_type & FBSQL_ASSOC)
|
||||
else
|
||||
{
|
||||
char* key = (char*)fbccmdLabelName(fbcmdColumnMetaDataAtIndex(result->metaData, i));
|
||||
add_assoc_unset(return_value,key);
|
||||
if (result_type & FBSQL_NUM)
|
||||
{
|
||||
add_index_unset(return_value,i);
|
||||
}
|
||||
if (result_type & FBSQL_ASSOC)
|
||||
{
|
||||
char* key = (char*)fbccmdLabelName(fbcmdColumnMetaDataAtIndex(result->metaData, i));
|
||||
add_assoc_unset(return_value,key);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2674,7 +2711,7 @@ PHP_FUNCTION(fbsql_data_seek)
|
||||
if (result == NULL) RETURN_FALSE;
|
||||
|
||||
convert_to_long_ex(argv[1]);
|
||||
rowIndex = (*argv[1])->value.lval;
|
||||
rowIndex = Z_LVAL_PP(argv[1]);
|
||||
if (rowIndex < 0)
|
||||
{
|
||||
php_error(E_WARNING,"Illegal index",resultIndex+1);
|
||||
@@ -2756,7 +2793,7 @@ PHP_FUNCTION(fbsql_fetch_field)
|
||||
if (argc >= 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
column = (*argv[1])->value.lval;
|
||||
column = Z_LVAL_PP(argv[1]);
|
||||
if (column < 0)
|
||||
{
|
||||
php_error(E_WARNING,"Illegal index",resultIndex+1);
|
||||
@@ -2817,7 +2854,7 @@ PHP_FUNCTION(fbsql_field_seek)
|
||||
if (argc>=2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
column = (*argv[1])->value.lval;
|
||||
column = Z_LVAL_PP(argv[1]);
|
||||
}
|
||||
if (column < 0)
|
||||
{
|
||||
@@ -2865,7 +2902,7 @@ PHP_FUNCTION(fbsql_field_name)
|
||||
if (argc >= 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
column = (*argv[1])->value.lval;
|
||||
column = Z_LVAL_PP(argv[1]);
|
||||
if (column < 0)
|
||||
{
|
||||
php_error(E_WARNING,"Illegal index",resultIndex+1);
|
||||
@@ -2883,10 +2920,7 @@ PHP_FUNCTION(fbsql_field_name)
|
||||
}
|
||||
else if (result->metaData)
|
||||
{
|
||||
phpfbestrdup(fbccmdLabelName(fbcmdColumnMetaDataAtIndex(result->metaData, column)),
|
||||
&return_value->value.str.len,
|
||||
&return_value->value.str.val);
|
||||
return_value->type = IS_STRING;
|
||||
RETURN_STRING((char *)fbccmdLabelName(fbcmdColumnMetaDataAtIndex(result->metaData, column)), 1);
|
||||
FB_SQL_G(resultIndex) = resultIndex;
|
||||
result->columnIndex = column;
|
||||
}
|
||||
@@ -2922,7 +2956,7 @@ PHP_FUNCTION(fbsql_field_table)
|
||||
if (argc >= 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
column = (*argv[1])->value.lval;
|
||||
column = Z_LVAL_PP(argv[1]);
|
||||
if (column < 0)
|
||||
{
|
||||
php_error(E_WARNING,"Illegal index",resultIndex+1);
|
||||
@@ -2934,10 +2968,7 @@ PHP_FUNCTION(fbsql_field_table)
|
||||
RETURN_FALSE;
|
||||
}
|
||||
}
|
||||
phpfbestrdup(fbccmdTableName(fbcmdColumnMetaDataAtIndex(result->metaData,column)),
|
||||
&return_value->value.str.len,
|
||||
&return_value->value.str.val);
|
||||
return_value->type = IS_STRING;
|
||||
RETURN_STRING((char *)fbccmdTableName(fbcmdColumnMetaDataAtIndex(result->metaData,column)), 1);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -2970,7 +3001,7 @@ PHP_FUNCTION(fbsql_field_len)
|
||||
if (argc >= 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
column = (*argv[1])->value.lval;
|
||||
column = Z_LVAL_PP(argv[1]);
|
||||
if (column < 0)
|
||||
{
|
||||
php_error(E_WARNING,"Illegal index",resultIndex+1);
|
||||
@@ -2991,10 +3022,7 @@ PHP_FUNCTION(fbsql_field_len)
|
||||
unsigned int length = fbcdmdLength(fbccmdDatatype(fbcmdColumnMetaDataAtIndex(result->metaData,column)));
|
||||
char buffer[50];
|
||||
sprintf(buffer,"%d",length);
|
||||
phpfbestrdup(buffer,
|
||||
&return_value->value.str.len,
|
||||
&return_value->value.str.val);
|
||||
return_value->type = IS_STRING;
|
||||
RETURN_STRING(buffer, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3032,7 +3060,7 @@ PHP_FUNCTION(fbsql_field_type)
|
||||
if (argc >= 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
column = (*argv[1])->value.lval;
|
||||
column = Z_LVAL_PP(argv[1]);
|
||||
if (column < 0)
|
||||
{
|
||||
php_error(E_WARNING,"Illegal index",resultIndex+1);
|
||||
@@ -3050,10 +3078,7 @@ PHP_FUNCTION(fbsql_field_type)
|
||||
}
|
||||
else if (result->metaData)
|
||||
{
|
||||
phpfbestrdup(fbcdmdDatatypeString (fbcmdDatatypeMetaDataAtIndex(result->metaData, column)),
|
||||
&return_value->value.str.len,
|
||||
&return_value->value.str.val);
|
||||
return_value->type = IS_STRING;
|
||||
RETURN_STRING((char *)fbcdmdDatatypeString (fbcmdDatatypeMetaDataAtIndex(result->metaData, column)), 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3093,7 +3118,7 @@ PHP_FUNCTION(fbsql_field_flags)
|
||||
if (argc >= 2)
|
||||
{
|
||||
convert_to_long_ex(argv[1]);
|
||||
column = (*argv[1])->value.lval;
|
||||
column = Z_LVAL_PP(argv[1]);
|
||||
if (column < 0)
|
||||
{
|
||||
php_error(E_WARNING,"Illegal index",resultIndex+1);
|
||||
@@ -3147,9 +3172,7 @@ PHP_FUNCTION(fbsql_field_flags)
|
||||
buf[len-1] = 0;
|
||||
len--;
|
||||
}
|
||||
return_value->value.str.len = len;
|
||||
return_value->value.str.val = estrndup(buf, len);
|
||||
return_value->type = IS_STRING;
|
||||
RETURN_STRING(buf, 1);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user