⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 php_fbsql.c

📁 php-4.4.7学习linux时下载的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
			break;	}	ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, id, "FrontBase-Link", le_link, le_plink);	md = fbcdcCommit(phpLink->connection);	if (md) {		fbcmdRelease(md);		RETURN_TRUE;	}	else		RETURN_FALSE;}/* }}} *//* {{{ proto int fbsql_rollback([resource link_identifier])   Rollback all statments since last commit */PHP_FUNCTION(fbsql_rollback){	PHPFBLink* phpLink = NULL;	FBCMetaData* md;	zval	**fbsql_link_index = NULL;	int id;	switch (ZEND_NUM_ARGS()) {		case 0:			id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);			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);	md = fbcdcRollback(phpLink->connection);	if (md) {		fbcmdRelease(md);		RETURN_TRUE;	}	else		RETURN_FALSE;}/* }}} */static void php_fbsql_create_lob(INTERNAL_FUNCTION_PARAMETERS, int lob_type){	PHPFBLink* phpLink = NULL;	FBCBlobHandle *lobHandle;	zval	**lob_data, **fbsql_link_index = NULL;	int id;	switch (ZEND_NUM_ARGS()) {		case 1:			if (zend_get_parameters_ex(1, &lob_data)==FAILURE) {				RETURN_FALSE;			}			id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);			CHECK_LINK(id);			break;		case 2:			if (zend_get_parameters_ex(2, &lob_data, &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);	convert_to_string_ex(lob_data);	switch (lob_type) {		case 0 : /* BLOB */			lobHandle = fbcdcWriteBLOB(phpLink->connection, Z_STRVAL_PP(lob_data), Z_STRLEN_PP(lob_data));			break;		case 1 : /* CLOB */			lobHandle = fbcdcWriteCLOB(phpLink->connection, Z_STRVAL_PP(lob_data));			break;	}	if (lobHandle) {		RETURN_STRING(fbcbhDescription(lobHandle), 1);		fbcbhRelease(lobHandle);	}	else		RETURN_FALSE;}/* {{{ proto string fbsql_create_blob(string blob_data [, resource link_identifier])   Create a BLOB in the database for use with an insert or update statement */PHP_FUNCTION(fbsql_create_blob){	php_fbsql_create_lob(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);}/* }}} *//* {{{ proto string fbsql_create_clob(string clob_data [, resource link_identifier])   Create a CLOB in the database for use with an insert or update statement */PHP_FUNCTION(fbsql_create_clob){	php_fbsql_create_lob(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);}/* }}} *//* {{{ proto bool fbsql_set_lob_mode(resource result, int lob_mode)   Sets the mode for how LOB data re retreived (actual data or a handle) */PHP_FUNCTION(fbsql_set_lob_mode){	PHPFBResult* result = NULL;	zval **fbsql_result_index = NULL, **lob_mode = NULL;	switch (ZEND_NUM_ARGS()) {		case 2:			if (zend_get_parameters_ex(2, &fbsql_result_index, &lob_mode)==FAILURE) {				RETURN_FALSE;			}			convert_to_long_ex(lob_mode);			break;		default:			WRONG_PARAM_COUNT;			break;	}	ZEND_FETCH_RESOURCE(result, PHPFBResult *, fbsql_result_index, -1, "FrontBase-Result", le_result);	result->lobMode = Z_LVAL_PP(lob_mode);	RETURN_TRUE;}/* }}} */static void php_fbsql_read_lob(INTERNAL_FUNCTION_PARAMETERS, int lob_type){	PHPFBLink* phpLink = NULL;	zval	**lob_handle, **fbsql_link_index = NULL;	int id;	long length = 0;	char* value = NULL;	switch (ZEND_NUM_ARGS()) {		case 1:			if (zend_get_parameters_ex(1, &lob_handle)==FAILURE) {				RETURN_FALSE;			}			id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);			CHECK_LINK(id);			break;		case 2:			if (zend_get_parameters_ex(2, &lob_handle, &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);	convert_to_string_ex(lob_handle);	if (Z_STRLEN_PP(lob_handle) != 27 || Z_STRVAL_PP(lob_handle)[0] != '@') {		if (FB_SQL_G(generateWarnings)) 			php_error_docref(NULL TSRMLS_CC, E_WARNING, "The handle is invalid");		RETURN_FALSE;	}	length = fbcbhBlobSize((FBCBlobHandle *)Z_STRVAL_PP(lob_handle));	if (lob_type == 0) 		value = estrndup((char *)fbcdcReadBLOB(phpLink->connection, (FBCBlobHandle *)Z_STRVAL_PP(lob_handle)), length);	else		value = estrndup((char *)fbcdcReadCLOB(phpLink->connection, (FBCBlobHandle *)Z_STRVAL_PP(lob_handle)), length);	if (value) {		RETURN_STRINGL(value, length, 0);	}	else {		RETURN_FALSE;	}}/* {{{ proto string fbsql_read_blob(string blob_handle [, resource link_identifier])   Read the BLOB data identified by blob_handle */PHP_FUNCTION(fbsql_read_blob){	php_fbsql_read_lob(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);}/* }}} *//* {{{ proto string fbsql_read_clob(string clob_handle [, resource link_identifier])   Read the CLOB data identified by clob_handle */PHP_FUNCTION(fbsql_read_clob){	php_fbsql_read_lob(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);}/* }}} */static void php_fbsql_lob_size(INTERNAL_FUNCTION_PARAMETERS, int lob_type){	PHPFBLink* phpLink = NULL;	zval	**lob_handle, **fbsql_link_index = NULL;	int id;	char* value = NULL;	switch (ZEND_NUM_ARGS()) {		case 1:			if (zend_get_parameters_ex(1, &lob_handle)==FAILURE) {				RETURN_FALSE;			}			id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);			CHECK_LINK(id);			break;		case 2:			if (zend_get_parameters_ex(2, &lob_handle, &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);	convert_to_string_ex(lob_handle);	if (Z_STRLEN_PP(lob_handle) != 27 || Z_STRVAL_PP(lob_handle)[0] != '@') {		if (FB_SQL_G(generateWarnings)) 			php_error_docref(NULL TSRMLS_CC, E_WARNING, "The handle is invalid");		RETURN_FALSE;	}	RETURN_LONG(fbcbhBlobSize((FBCBlobHandle *)Z_STRVAL_PP(lob_handle)));}/* {{{ proto string fbsql_blob_size(string blob_handle [, resource link_identifier])   Get the size of a BLOB identified by blob_handle */PHP_FUNCTION(fbsql_blob_size){	php_fbsql_lob_size(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);}/* }}} *//* {{{ proto string fbsql_clob_size(string clob_handle [, resource link_identifier])   Get the size of a CLOB identified by clob_handle */PHP_FUNCTION(fbsql_clob_size){	php_fbsql_lob_size(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);}/* }}} *//* {{{ proto string fbsql_hostname(resource link_identifier [, string host_name])   Get or set the host name used with a connection */PHP_FUNCTION(fbsql_hostname){	PHPFBLink* phpLink = NULL;	zval	**fbsql_link_index = NULL, **host_name = NULL;	switch (ZEND_NUM_ARGS()) {		case 1:			if (zend_get_parameters_ex(1, &fbsql_link_index)==FAILURE) {				RETURN_FALSE;			}			break;		case 2:			if (zend_get_parameters_ex(2, &fbsql_link_index, &host_name)==FAILURE) {				RETURN_FALSE;			}			break;		default:			WRONG_PARAM_COUNT;			break;	}	ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, -1, "FrontBase-Link", le_link, le_plink);	if (host_name)	{		convert_to_string_ex(host_name);		if (phpLink->hostName) free(phpLink->hostName);		phpLink->hostName = strdup(Z_STRVAL_PP(host_name));	}	RETURN_STRING(phpLink->hostName, 1);}/* }}} *//* {{{ proto string fbsql_database(resource link_identifier [, string database])    Get or set the database name used with a connection */PHP_FUNCTION(fbsql_database){	PHPFBLink* phpLink = NULL;	zval **fbsql_link_index = NULL, **dbname = NULL;	switch (ZEND_NUM_ARGS()) {		case 1:			if (zend_get_parameters_ex(1, &fbsql_link_index)==FAILURE) {				RETURN_FALSE;			}			break;		case 2:			if (zend_get_parameters_ex(2, &fbsql_link_index, &dbname)==FAILURE) {				RETURN_FALSE;			}			break;		default:			WRONG_PARAM_COUNT;			break;	}	ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, -1, "FrontBase-Link", le_link, le_plink);	if (dbname)	{		convert_to_string_ex(dbname);		if (phpLink->databaseName) free(phpLink->databaseName);		phpLink->databaseName = strdup(Z_STRVAL_PP(dbname));	}	if (phpLink->databaseName) {		RETURN_STRING(phpLink->databaseName, 1);	}	else {		RETURN_FALSE;	}}/* }}} *//* {{{ proto string fbsql_database_password(resource link_identifier [, string database_password])   Get or set the databsae password used with a connection */PHP_FUNCTION(fbsql_database_password){	PHPFBLink* phpLink = NULL;	zval **fbsql_link_index = NULL, **db_password = NULL;	switch (ZEND_NUM_ARGS()) {		case 1:			if (zend_get_parameters_ex(1, &fbsql_link_index)==FAILURE) {				RETURN_FALSE;			}			break;		case 2:			if (zend_get_parameters_ex(2, &fbsql_link_index, &db_password)==FAILURE) {				RETURN_FALSE;			}			break;		default:			WRONG_PARAM_COUNT;			break;	}	ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, -1, "FrontBase-Link", le_link, le_plink);	if (db_password)	{		convert_to_string_ex(db_password);		if (phpLink->databasePassword) free(phpLink->databasePassword);		phpLink->databasePassword = strdup(Z_STRVAL_PP(db_password));	}	RETURN_STRING(phpLink->databasePassword, 1);}/* }}} *//* {{{ proto string fbsql_username(resource link_identifier [, string username])   Get or set the host user used with a connection */PHP_FUNCTION(fbsql_username){	PHPFBLink* phpLink = NULL;	zval **fbsql_link_index = NULL, **username = NULL;	switch (ZEND_NUM_ARGS()) {		case 1:			if (zend_get_parameters_ex(1, &fbsql_link_index)==FAILURE) {				RETURN_FALSE;			}			break;		case 2:			if (zend_get_parameters_ex(2, &fbsql_link_index, &username)==FAILURE) {				RETURN_FALSE;			}			break;		default:			WRONG_PARAM_COUNT;			break;	}	ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, -1, "FrontBase-Link", le_link, le_plink);	if (username)	{		convert_to_string_ex(username);		if (phpLink->userName) free(phpLink->userName);		phpLink->userName = strdup(Z_STRVAL_PP(username));	}	RETURN_STRING(phpLink->userName, 1);}/* }}} *//* {{{ proto string fbsql_password(resource link_identifier [, string password])   Get or set the user password used with a connection */PHP_FUNCTION(fbsql_password){	PHPFBLink* phpLink = NULL;	zval **fbsql_link_index = NULL, **password = NULL;	switch (ZEND_NUM_ARGS()) {		case 1:			if (zend_get_parameters_ex(1, &fbsql_link_index)==FAILURE) {				RETURN_FALSE;			}			break;		case 2:			if (zend_get_parameters_ex(2, &fbsql_link_index, &password)==FAILURE) {				RETURN_FALSE;			}			break;		default:			WRONG_PARAM_COUNT;			break;	}	ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, -1, "FrontBase-Link", le_link, le_plink);	if (password)	{		convert_to_string_ex(password);		if (phpLink->userPassword) free(phpLink->userPassword);		phpLink->userPassword = strdup(Z_STRVAL_PP(password));	}	RETURN_STRING(phpLink->userPassword, 1);}/* }}} *//* {{{ proto bool fbsql_select_db([string database_name [, resource link_identifier]])   Select the database to open */PHP_FUNCTION(fbsql_select_db){	PHPFBLink* phpLink = NULL;	zval	**fbsql_link_index = NULL, **dbname;	int id;	char*          name = NULL;	switch (ZEND_NUM_ARGS()) {		case 0:			name = FB_SQL_G(databaseName);			id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);			CHECK_LINK(id);			break;		case 1:			id = php_fbsql_get_default_link(INTERNAL_FUNCTION_PARAM_PASSTHRU);			CHECK_LINK(id);			if (zend_get_parameters_ex(1, &dbname)==FAILURE) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -